<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 vector-feature-night-mode-enabled skin-theme-clientpref-os vector-sticky-header-enabled" lang="fr" dir="ltr"><head>
<meta charset="UTF-8">
<title>PostgreSQL</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://fr.wikipedia.org/wiki/PostgreSQL"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-PostgreSQL rootpage-PostgreSQL skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">PostgreSQL</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="fr" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr"><div class="infobox_v3 infobox infobox--frwiki noarchive" style="width:260px">
<div class="entete icon informatique" style="background-color: #336691; color: #000000;"><style data-mw-deduplicate="TemplateStyles:r228712691">
/* start https://fr.wikipedia.org/ */
.mw-parser-output .entete.informatique{background-image:url("./_mw_/Picto.nfo.png")}
/* end https://fr.wikipedia.org/ */
</style>
<div><span style="color: #fff;">PostgreSQL</span></div>
</div>
<div class="images">
</div>
<div class="hr" style="background-color:#336691; height:2px;"></div>
<div class="images">
</div>
<table><caption style="background-color:#336691;color:#000000;">Informations</caption>
<tbody><tr>
<th scope="row">Créateur</th>
<td>
<span class="wd_p170"><a href="Michael_Stonebraker" title="Michael Stonebraker">Michael Stonebraker</a></span></td>
</tr>
<tr>
<th scope="row"><a href="D%C3%A9veloppeur" title="Développeur">Développé par</a></th>
<td>
<span class="wd_p178">PostgreSQL Global Development Group <small>(<a href="https://www.wikidata.org/wiki/Q65807102" class="extiw external" title="d:Q65807102"><span class="indicateur-langue" title="Voir l'élément Wikidata correspondant">d</span></a>)</small>, Peter Eisentraut <small>(<a href="https://www.wikidata.org/wiki/Q122909316" class="extiw external" title="d:Q122909316"><span class="indicateur-langue" title="Voir l'élément Wikidata correspondant">d</span></a>)</small>, Tom Lane <small>(<a href="https://en.wikipedia.org/wiki/Tom_Lane_(computer_scientist)" class="extiw external" title="en:Tom Lane (computer scientist)"><span class="indicateur-langue" title="Article sur Wikipédia en anglais">en</span></a>)</small>, Bruce Momjian <small>(<a href="https://www.wikidata.org/wiki/Q113653074" class="extiw external" title="d:Q113653074"><span class="indicateur-langue" title="Voir l'élément Wikidata correspondant">d</span></a>)</small> et Marc Fournier <small>(<a href="https://www.wikidata.org/wiki/Q122909361" class="extiw external" title="d:Q122909361"><span class="indicateur-langue" title="Voir l'élément Wikidata correspondant">d</span></a>)</small></span></td>
</tr>
<tr>
<th scope="row"> <a href="Version_d'un_logiciel" title="Version d'un logiciel">Première version</a>
</th>
<td>
<span class="wd_p571"><time>1996</time></span></td>
</tr>
<tr>
<th scope="row"> <a href="Version_d'un_logiciel" title="Version d'un logiciel">Dernière version</a>
</th>
<td>
<span class="wd_p348">18.0 (<time class="nowrap" datetime="2025-09-25" data-sort-value="2025-09-25">25 septembre 2025</time>)<sup id="cite_ref-wikidata-9bc97ceb394596d1f27bf6d458c8798a61ad8185_1-0" class="reference"><a href="#cite_note-wikidata-9bc97ceb394596d1f27bf6d458c8798a61ad8185-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></span></td>
</tr>
<tr>
<th scope="row"><a href="D%C3%A9p%C3%B4t_(informatique)" title="Dépôt (informatique)">Dépôt</a></th>
<td>
<span class="wd_p1324"><a rel="nofollow" class="external text" href="https://git.postgresql.org/gitweb/?p=postgresql.git">git.postgresql.org/gitweb/?p=postgresql.git</a></span></td>
</tr>
<tr>
<th scope="row"> <a href="Langage_de_programmation" title="Langage de programmation">Écrit en</a>
</th>
<td>
<span class="wd_p277"><a href="C_(langage)" title="C (langage)">C</a></span></td>
</tr>
<tr>
<th scope="row"><a href="Syst%C3%A8me_d'exploitation" title="Système d'exploitation">Système d'exploitation</a></th>
<td>
<span class="wd_p306"><a href="FreeBSD" title="FreeBSD">FreeBSD</a>, <a href="OpenBSD" title="OpenBSD">OpenBSD</a>, <a href="Linux" title="Linux">Linux</a>, <a href="MacOS" title="MacOS">macOS</a>, <a href="Solaris_(syst%C3%A8me_d'exploitation)" title="Solaris (système d'exploitation)">Solaris</a>, <a href="Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a> et <a href="Type_Unix" title="Type Unix">type Unix</a></span></td>
</tr>
<tr>
<th scope="row"> Type
</th>
<td>
<span class="wd_p31">Système de gestion de base de données relationnelle <small>(<a href="https://en.wikipedia.org/wiki/Relational_database_management_system" class="extiw external" title="en:Relational database management system"><span class="indicateur-langue" title="Article sur Wikipédia en anglais">en</span></a>)</small><br>Serveur SQL <small>(<a href="https://www.wikidata.org/wiki/Q114901705" class="extiw external" title="d:Q114901705"><span class="indicateur-langue" title="Voir l'élément Wikidata correspondant">d</span></a>)</small></span></td>
</tr>
<tr>
<th scope="row"> <a href="Politique_de_distribution" title="Politique de distribution">Politique de distribution</a>
</th>
<td>
Gratuit</td>
</tr>
<tr>
<th scope="row"><a href="Licence_de_logiciel" title="Licence de logiciel">Licence</a></th>
<td>
<span class="wd_p275">Licence PostgreSQL <small>(<a href="https://www.wikidata.org/wiki/Q18563589" class="extiw external" title="d:Q18563589"><span class="indicateur-langue" title="Voir l'élément Wikidata correspondant">d</span></a>)</small></span></td>
</tr>
<tr>
<th scope="row"><a href="Site_web" title="Site web">Site web</a></th>
<td>
<span class="wd_p856"><a rel="nofollow" class="external text" href="https://www.postgresql.org">www.postgresql.org</a></span></td>
</tr>
</tbody></table>
<p class="mw-empty-elt">
</p>
</div>
<div class="infobox_v3 infobox infobox--frwiki noarchive">
<div class="entete icon communication" style="background-color: #336691;"><style data-mw-deduplicate="TemplateStyles:r228712581">
/* start https://fr.wikipedia.org/ */
.mw-parser-output .entete.communication{background-image:url("./_mw_/Picto_infobox_antenna.png")}
/* end https://fr.wikipedia.org/ */
</style>
<div><span style="color: #fff;">PostgreSQL</span></div>
</div>
<p class="mw-empty-elt">
</p><p class="mw-empty-elt">
</p>
<table><caption style="">Informations</caption>
<tbody><tr>
<th scope="row"> Fonction
</th>
<td>
Gestion de bases de données</td>
</tr>
<tr>
<th scope="row"> <a href="Port_(logiciel)" title="Port (logiciel)">Port</a>
</th>
<td>
5432<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup></td>
</tr>
</tbody></table>
</div>
<p><b>PostgreSQL,</b> aussi connu sous le nom de <b>Postgres</b>, est un <a href="Syst%C3%A8me_de_gestion_de_base_de_donn%C3%A9es" title="Système de gestion de base de données">système de gestion de base de données</a> <a href="Base_de_donn%C3%A9es_relationnelle" title="Base de données relationnelle">relationnelle</a> et <a href="Base_de_donn%C3%A9es_orient%C3%A9e_objet" title="Base de données orientée objet">objet</a> (<a href="Syst%C3%A8me_de_gestion_de_base_de_donn%C3%A9es_relationnel-objet" title="Système de gestion de base de données relationnel-objet">SGBDRO</a>). C'est un outil <a href="Logiciel_libre" title="Logiciel libre">libre</a> disponible selon les termes d'une licence de type <a href="Licence_BSD" title="Licence BSD">BSD</a> mettant l’accent sur l’extensibilité et la conformité avec <a href="SQL" class="mw-redirect" title="SQL">SQL</a>. Il prend en charge les transactions avec les propriétés <a href="Propri%C3%A9t%C3%A9s_ACID" title="Propriétés ACID">ACID</a> (Atomicité, Cohérence, Isolation, Durabilité) et offre des fonctionnalités avancées telles que les <a href="Vue_(base_de_donn%C3%A9es)" title="Vue (base de données)">vues</a> automatiquement mises à jour, les <a href="Vue_mat%C3%A9rialis%C3%A9e" title="Vue matérialisée">vues matérialisées</a> (<a href="https://en.wikipedia.org/wiki/Materialized_view" class="extiw external" title="en:Materialized view">materialized views</a>), les <a href="D%C3%A9clencheurs" class="mw-redirect" title="Déclencheurs">déclencheurs</a> (<i><a href="https://en.wikipedia.org/wiki/Database_trigger" class="extiw external" title="en:Database trigger">trigger</a></i>), les <a href="Cl%C3%A9_%C3%A9trang%C3%A8re" title="Clé étrangère">clés étrangères</a> (<a href="https://en.wikipedia.org/wiki/Foreign_key" class="extiw external" title="en:Foreign key">f<i>oreign keys</i></a>) et les <a href="Proc%C3%A9dure_stock%C3%A9e" title="Procédure stockée">procédures stockées</a> (<a href="https://en.wikipedia.org/wiki/Stored_procedure" class="extiw external" title="en:Stored procedure">stored procedures</a>)<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>. PostgreSQL est compatible avec les principaux systèmes d’exploitation, notamment <a href="Windows" class="mw-redirect" title="Windows">Windows</a>, <a href="Linux" title="Linux">Linux</a>, <a href="MacOS" title="MacOS">macOS</a>, <a href="FreeBSD" title="FreeBSD">FreeBSD</a> et <a href="OpenBSD" title="OpenBSD">OpenBSD</a>. Il peut gérer une grande variété de charges de travail, allant des bases de données sur une seule machine aux entrepôts de données, aux data lakes<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> et aux <a href="Service_web" title="Service web">services web</a> avec de nombreux utilisateurs simultanés.
</p><p>PostgreSQL est comparable à d'autres systèmes de gestion de base de données, qu'ils soient libres (comme <a href="MariaDB" title="MariaDB">MariaDB</a> et <a href="Firebird_(base_de_donn%C3%A9es)" title="Firebird (base de données)">Firebird</a>), ou propriétaires (comme <a href="Oracle_Database" title="Oracle Database">Oracle</a>, <a href="MySQL" title="MySQL">MySQL</a>, <a href="Sybase" title="Sybase">Sybase</a>, <a href="DB2" class="mw-redirect" title="DB2">DB2</a>, <a href="Informix" title="Informix">Informix</a> et <a href="Microsoft_SQL_Server" title="Microsoft SQL Server">Microsoft SQL Server</a>). Comme les projets libres <a href="Apache_HTTP_Server" title="Apache HTTP Server">Apache</a> et Linux, PostgreSQL n'est pas contrôlé par une seule <a href="Entreprise" title="Entreprise">entreprise</a>, mais est fondé sur une communauté mondiale de développeurs et d'entreprises.
</p><p>Le PostgreSQL Global Development Group<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> se concentre exclusivement sur le développement du moteur de base de données et des composants étroitement liés. Ce noyau constitue techniquement PostgreSQL lui-même, mais une vaste communauté de développeurs et un écosystème fournissent de nombreuses fonctionnalités supplémentaires qui, traditionnellement, seraient proposées par un <a href="%C3%89diteur_de_logiciel" title="Éditeur de logiciel">éditeur de logiciel</a> propriétaire. Cela inclut des fonctionnalités spécifiques, comme le support des bases de données <a href="Base_de_donn%C3%A9es_spatiales" title="Base de données spatiales">géospatiales</a> ou <a href="Base_de_donn%C3%A9es_temporelle" title="Base de données temporelle">temporelles</a>, ainsi que des extensions permettant d’émuler d’autres systèmes de bases de données. De nombreux outils tiers proposent également des interfaces utilisateur graphiques ainsi que des solutions d’équilibrage de charge et de haute disponibilité<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>. Ces contributions jouent un rôle essentiel dans l’adoption et l’utilisation de PostgreSQL, constituant ainsi un vaste écosystème autour du moteur de base de données.
</p>
<div class="mw-heading mw-heading2"><h2 id="Histoire">Histoire</h2></div>
<p>L'histoire de PostgreSQL remonte à la base de données <a href="Ingres_(base_de_donn%C3%A9es)" title="Ingres (base de données)">Ingres</a>, développée à <a href="Universit%C3%A9_de_Californie_%C3%A0_Berkeley" title="Université de Californie à Berkeley">Berkeley</a> par <a href="Michael_Stonebraker" title="Michael Stonebraker">Michael Stonebraker</a>. Lorsque ce dernier décida en <a href="1985" title="1985">1985</a> de recommencer le développement de zéro, il nomma le <a href="Logiciel" title="Logiciel">logiciel</a> Postgres, comme raccourci de <i>post-Ingres</i>. Lors de l'ajout des fonctionnalités <a href="Structured_Query_Language" title="Structured Query Language">SQL</a> en 1995, Postgres fut renommé Postgres95. Ce nom fut changé à la fin de 1996 en PostgreSQL.
</p><p>Le projet est organisé de manière à <a href="Mainteneur" title="Mainteneur">maintenir</a> plusieurs <a href="Branche_(gestion_de_configuration)" title="Branche (gestion de configuration)">versions</a> <a href="Version_stable#Version_finale_.28ou_stable.29" class="mw-redirect" title="Version stable">stables</a> en parallèle, ainsi qu'un <a href="D%C3%A9p%C3%B4t_(informatique)" title="Dépôt (informatique)">dépôt</a> mis à jour en continu<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>. Cette pratique est extrêmement appréciable pour les productions des systèmes informatiques car elle leur permet de lisser les besoins de migration obligée de leurs applications qui utilisent des bases de données sur les moments de faible charge et de disponibilités de leurs ressources. <span class="need_ref" title="Ce passage nécessite une référence." style="cursor:help;">Elles réalisent ainsi de très sérieuses économies, puisqu'on estime en moyenne que cette charge représente au moins 40 %, mais le plus souvent jusqu'à 60 % des coûts de fonctionnement des organisations informatiques au sein des entreprises.</span><sup class="need_ref_tag" style="padding-left:2px;">[réf. nécessaire]</sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Principales_caractéristiques"><span id="Principales_caract.C3.A9ristiques"></span>Principales caractéristiques</h2></div>
<p>Ce <a href="Syst%C3%A8me_de_gestion_de_base_de_donn%C3%A9es_relationnel-objet" title="Système de gestion de base de données relationnel-objet">SGBDRO</a> utilise des <a href="Type_(informatique)" title="Type (informatique)">types de données</a> modernes, dits composés ou enrichis suivant les terminologies utilisées dans le vocable informatique usuel. Ceci signifie que
PostgreSQL peut stocker plus de types de données que les types simples traditionnels entiers, caractères, etc. L'utilisateur peut créer des types, des fonctions, utiliser l'héritage de type, etc.
</p><p>PostgreSQL est plus avancé que ses concurrents dans la conformité aux standards SQL (énoncé vrai entre 2012 et 2015).
PostgreSQL est pratiquement conforme (de plus en plus conforme) aux normes <a href="ANSI" class="mw-redirect" title="ANSI">ANSI</a> <a href="Structured_Query_Language" title="Structured Query Language">SQL</a> 89, SQL 92 (SQL 2), SQL 99 (SQL 3), SQL:2003 et SQL:2008<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>. Il fonctionne sur diverses <a href="Plate-forme_(informatique)" class="mw-redirect" title="Plate-forme (informatique)">plates-formes</a> matérielles et sous différents <a href="Syst%C3%A8me_d'exploitation" title="Système d'exploitation">systèmes d'exploitation</a>.
</p><p>PostgreSQL fonctionne sur <a href="Solaris_(informatique)" class="mw-redirect" title="Solaris (informatique)">Solaris</a>, <a href="SunOS" class="mw-redirect" title="SunOS">SunOS</a>, <a href="MacOS" title="MacOS">macOS</a>, <a href="HP-UX" title="HP-UX">HP-UX</a>, <a href="AIX" title="AIX">AIX</a>, Linux, <a href="IRIX" title="IRIX">IRIX</a>, <a href="Digital_Unix" class="mw-redirect" title="Digital Unix">Digital Unix</a>, <a href="Berkeley_Software_Distribution" title="Berkeley Software Distribution">BSD</a>, <a href="NetBSD" title="NetBSD">NetBSD</a>, <a href="FreeBSD" title="FreeBSD">FreeBSD</a>, <a href="OpenBSD" title="OpenBSD">OpenBSD</a>, SCO unix, <a href="NeXTSTEP" title="NeXTSTEP">NeXTSTEP</a>, <a href="UnixWare" title="UnixWare">UnixWare</a> et toutes sortes d'<a href="Unix" title="Unix">Unix</a>. Depuis la version 8.0, PostgreSQL fonctionne également nativement sur Windows. Avant la version 8, il fallait une couche de compatibilité <a href="POSIX" title="POSIX">POSIX</a> (par exemple <a href="Cygwin" title="Cygwin">cygwin</a>) pour faire fonctionner PostgreSQL sur ce système d'exploitation.
</p><p>PostgreSQL est largement reconnu pour son comportement stable, proche de <i><a href="Oracle_Database" title="Oracle Database">Oracle</a></i>, mais aussi pour ses possibilités de programmation étendues, directement dans le moteur de la base de données, via <a href="PL/pgSQL" title="PL/pgSQL">PL/pgSQL</a>. Le traitement interne des données peut aussi être couplé à d'autres modules externes compilés dans d'autres langages.
</p><p>Outre sa capacité à gérer des bases de données volumineuses<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>, PostgreSQL est souvent utilisé pour sa capacité à gérer des bases de données spatiales (<a href="Syst%C3%A8me_d'information_g%C3%A9ographique" title="Système d'information géographique">SIG</a>), grâce à son extension <a href="PostGIS" title="PostGIS">PostGIS</a> qui intègre une riche bibliothèque de fonctions géographiques.
</p>
<div class="mw-heading mw-heading2"><h2 id="Multiversion_concurrency_control_(MCC_ou_MVCC)"><span id="Multiversion_concurrency_control_.28MCC_ou_MVCC.29"></span>Multiversion concurrency control (MCC ou MVCC)</h2></div>
<p>PostgreSQL gère la concurrence grâce au contrôle de concurrence multiversion ou <a href="Multiversion_Concurrency_Control" title="Multiversion Concurrency Control">Multiversion concurrency control</a> (<a href="MVCC" class="mw-redirect" title="MVCC">MVCC</a>), en attribuant à chaque transaction une vue cohérente et isolée de l'état de la base de données à un instant donné, ce qui permet d'apporter des modifications sans affecter les autres transactions. Cela élimine en grande partie la nécessité d'utiliser des verrous en lecture et garantit que la base de données respecte les principes <a href="Propri%C3%A9t%C3%A9s_ACID" title="Propriétés ACID">ACID</a> (Atomicité, Cohérence, Isolation, Durabilité). PostgreSQL propose quatre niveaux d'<a href="Isolation_(informatique)" title="Isolation (informatique)">isolation des transactions</a> : <i>Read Uncommitted</i>, <i>Read Committed</i>, <i>Repeatable Read</i> et <i>Serializable</i>. Étant donné que PostgreSQL est protégé contre les lectures sales, demander un niveau d'isolation des transactions <i>Read Uncommitted</i> renvoie en réalité un niveau <i>Read Committed</i>. PostgreSQL supporte un <a href="Th%C3%A9orie_de_l'ordonnancement" title="Théorie de l'ordonnancement">ordonnancement</a> complet (ou <a href="https://en.wikipedia.org/wiki/Database_transaction_schedule" class="extiw external" title="en:Database transaction schedule">Serializability</a>) grâce à la méthode de <a href="https://en.wikipedia.org/wiki/Snapshot_isolation" class="extiw external" title="en:Snapshot isolation"><i>serializable snapshot isolation</i> (SSI)</a><sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup>. L'implémentation du MVCC dans PostgreSQL peut rencontrer des problèmes de performance nécessitant un réglage lorsqu'elle est soumise à une charge d'écriture importante, particulièrement lors de la mise à jour de lignes existantes<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Stockage_et_réplication"><span id="Stockage_et_r.C3.A9plication"></span>Stockage et réplication</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Réplication"><span id="R.C3.A9plication"></span>Réplication</h3></div>
<p>PostgreSQL intègre une <a href="R%C3%A9plication_(informatique)" title="Réplication (informatique)">réplication</a><sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> binaire native basée sur l’envoi des modifications, que l'on nomme des journaux de reprise anticipée ou <b><a href="Write-ahead_logging" title="Write-ahead logging">Write-Ahead Logs</a> (WAL),</b> vers des nœuds répliqués de manière asynchrone. Ces nœuds permettent d’exécuter des requêtes en lecture seule, ce qui facilite la répartition du trafic de lecture entre plusieurs serveurs. Auparavant, les solutions de réplication offrant une mise à l’échelle similaire des lectures s’appuyaient généralement sur l’ajout de déclencheurs de réplication sur le serveur principal, augmentant ainsi sa charge.
</p><p>PostgreSQL inclut également une réplication synchrone intégrée<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> qui garantit que, pour chaque transaction d’écriture, le serveur principal attend qu’au moins un nœud répliqué ait écrit les données dans son journal des transactions. Contrairement à d’autres systèmes de bases de données, PostgreSQL permet de spécifier le niveau de durabilité d’une transaction (<a href="Syst%C3%A8me_asynchrone" title="Système asynchrone">asynchrone</a> ou synchrone) selon plusieurs critères : par base de données, par utilisateur, par session ou même par transaction. Cela s’avère utile pour certaines charges de travail ne nécessitant pas de telles garanties, car la réplication synchrone peut affecter les performances en raison de l'attente de confirmation du serveur de secours.
</p><p>Les serveurs de secours, également appelés serveurs en attente, peuvent être synchrones ou asynchrones. Dans le cadre de la réplication synchrone, la configuration permet de spécifier les serveurs candidats. Le premier serveur de la liste qui assure un flux actif devient le serveur synchrone principal. En cas de panne, le système bascule automatiquement vers le serveur suivant dans la liste. Le terme <i>serveur de secours</i> est généralement utilisé lorsqu'il s'agit de <a href="Haute_disponibilit%C3%A9" title="Haute disponibilité">haute disponibilité</a> et de basculement automatique en cas de panne, tandis que <i>serveur</i> <i>d'attente (standby server)</i> désigne plutôt un serveur qui reste passif et ne prend le relais qu'en cas de besoin.
</p><p>La <a href="R%C3%A9plication_multi-ma%C3%AEtres" title="Réplication multi-maîtres">réplication synchrone multi-maître</a> n’est pas incluse dans le cœur de PostgreSQL. Cependant, Postgres-XC, basé sur PostgreSQL, fournit une réplication multi-maître synchrone évolutive et est distribué sous la même licence que PostgreSQL. Un projet associé, <b>Postgres-XL,</b> propose des fonctionnalités similaires, tandis que Postgres-R est un autre <a href="Fork_(d%C3%A9veloppement_logiciel)" title="Fork (développement logiciel)">fork</a> axé sur la réplication. La réplication bidirectionnelle (BDR) est un système de réplication multi-maître asynchrone pour PostgreSQL<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>.
</p><p>Des outils comme repmgr simplifient la gestion des clusters de réplication.
</p><p>Plusieurs solutions de réplication asynchrone basées sur des déclencheurs restent pertinentes malgré l’introduction des capacités natives de réplication binaire, notamment dans les cas où la réplication complète d’un cluster de bases de données n’est pas appropriée. Parmi ces solutions :
</p>
<ul><li><a href="https://en.wikipedia.org/wiki/Slony-I" class="extiw external" title="en:Slony-I">Slony-I</a></li>
<li>Londiste, intégré dans SkyTools</li>
<li>Bucardo, solution de réplication multi-maître<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup></li>
<li><a href="https://en.wikipedia.org/wiki/SymmetricDS" class="extiw external" title="en:SymmetricDS">SymmetricDS</a>, solution de réplication multi-maître et multi-niveaux</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Indexation">Indexation</h3></div>
<p>PostgreSQL intègre en natif la prise en charge des index classiques de type <a href="B-tree" class="mw-redirect" title="B-tree">B-tree</a> et <a href="Table_de_hachage" title="Table de hachage">table de hachage</a> (<i>hash table</i>), ainsi que quatre méthodes d'accès aux index :
</p>
<ul><li><a href="https://en.wikipedia.org/wiki/GiST" class="extiw external" title="en:GiST">GiST</a> (Generalized Search Trees) : une structure d'indexation flexible permettant des recherches avancées, notamment pour les types de données géospatiaux et textuels.</li>
<li>GIN (Generalized Inverted Indexes) : conçu pour indexer des valeurs contenant plusieurs éléments, comme des tableaux ou du texte en recherche <i><a href="FULLTEXT" class="mw-redirect" title="FULLTEXT">full-text</a></i>.</li>
<li>SP-GiST<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> (Space-Partitioned GiST) : adapté aux structures de données permettant un partitionnement spatial, comme les arbres quaternaires (<a href="Quadtree" title="Quadtree"><i>quad-trees</i>)</a> ou les arbres de trie.</li>
<li><a href="https://en.wikipedia.org/wiki/Block_Range_Index" class="extiw external" title="en:Block Range Index">BRIN</a> (Block Range Indexes) : optimisé pour les très grandes tables en indexant uniquement des plages de blocs de données, plutôt que chaque ligne individuellement.</li></ul>
<p>En plus de ces types d'indexation, PostgreSQL permet la création de méthodes d'indexation définies par l'utilisateur, bien que ce processus soit complexe. PostgreSQL prend également en charge plusieurs fonctionnalités avancées en matière d'indexation :
</p>
<ul><li>Index d'expression (<a href="https://en.wikipedia.org/wiki/Expression_index" class="extiw external" title="en:Expression index">Expression Indexes</a>): permet de créer un index sur le résultat d'une expression ou d'une fonction, plutôt que sur la valeur brute d'une colonne.</li>
<li>Index partiels (<a href="https://en.wikipedia.org/wiki/Partial_index" class="extiw external" title="en:Partial index">Partial indexes</a>) : indexe uniquement une partie d'une table grâce à l'ajout d'une clause <code>WHERE</code> dans la commande <code>CREATE INDEX</code>. Cela permet de limiter la taille de l'index et d'améliorer les performances.</li>
<li>Combinaison d'index multiples : le planificateur de requêtes (<i>query planner</i>) peut exploiter plusieurs index simultanément pour optimiser l'exécution de requêtes complexes. Cela est particulièrement utile pour les <a href="Entrep%C3%B4t_de_donn%C3%A9es" title="Entrepôt de données">entrepôts de données</a> (<i>data warehouses</i>) utilisant des <a href="%C3%89toile_(mod%C3%A8le_de_donn%C3%A9es)" title="Étoile (modèle de données)">schémas en étoile</a> (<i>star schema</i>).</li>
<li>Indexation des <a href="M%C3%A9thode_des_k_plus_proches_voisins" title="Méthode des k plus proches voisins">k plus proches voisins</a> (<i>k-nearest neighbors</i> ou k-NN) : grâce à la méthode KNN-GiST, PostgreSQL peut rechercher efficacement les valeurs les plus proches d'un point donné. Cela est particulièrement utile pour les recherches de similarité (<i><a href="Fuzzy_search" class="mw-redirect" title="Fuzzy search">fuzzy search</a></i>), les bases de données textuelles ou les données <a href="https://en.wikipedia.org/wiki/Geographic_data_and_information" class="extiw external" title="en:Geographic data and information">géospatiales</a>.</li>
<li>Scans uniquement sur index (<i>Index-Only Scans</i>) : dans certains cas, PostgreSQL peut récupérer les données directement depuis un index sans accéder à la table principale, réduisant ainsi le nombre d'opérations disque et accélérant les requêtes<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>.</li>
<li><a href="https://en.wikipedia.org/wiki/Block_Range_Index" class="extiw external" title="en:Block Range Index">Block Range Indexes</a> (BRIN) : méthode d'indexation introduite dans PostgreSQL 9.5<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup>, optimisée pour les très grandes tables contenant des données corrélées (comme des horodatages ou des IDs séquentiels). Plutôt que d’indexer chaque ligne, un BRIN stocke un résumé des valeurs (ex. min/max) pour des plages de blocs de la table, réduisant ainsi la taille de l’index.</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Schémas"><span id="Sch.C3.A9mas"></span>Schémas</h3></div>
<p>Les schémas PostgreSQL sont des <a href="Espaces_de_noms" class="mw-redirect" title="Espaces de noms">espaces de noms</a> permettant à des <a href="Objet_(informatique)" title="Objet (informatique)">objets</a> du même type et portant le même nom de coexister dans une seule base de données. Ils ne doivent pas être confondus avec un <a href="Sch%C3%A9ma_de_base_de_donn%C3%A9es" title="Schéma de base de données">schéma de base de données</a> (ou <a href="https://en.wikipedia.org/wiki/Database_schema" class="extiw external" title="en:Database schema">database schema</a>), qui est une spécification abstraite, structurelle et organisationnelle définissant la relation des données de chaque table avec celles des autres tables. Tous les objets d'une base de données PostgreSQL, à l'exception de quelques objets globaux tels que les <a href="Role-Based_Access_Control" class="mw-redirect" title="Role-Based Access Control">rôles</a> et les <a href="Tablespace" title="Tablespace">tablespaces</a>, existent au sein d'un schéma. Les schémas ne peuvent pas être imbriqués, un schéma ne peut pas contenir un autre schéma. Le système de permissions contrôle l'accès aux schémas et à leur contenu.
</p><p>Par défaut, les bases de données nouvellement créées ne comportent qu'un seul schéma appelé <i>public</i>, mais d'autres schémas peuvent être ajoutés, et l'utilisation du schéma public n'est pas obligatoire.
</p><p>Un paramètre <code>search_path</code> détermine l'ordre dans lequel PostgreSQL recherche les objets non qualifiés (ceux qui ne sont pas précédés d’un schéma). Par défaut, il est défini sur <code>$user, public</code> (<code>$user</code> faisant référence à l'utilisateur actuellement connecté à la base de données). Ce paramètre par défaut peut être défini au niveau d’une base de données ou d’un rôle, mais étant un paramètre de session, il peut être librement modifié (même plusieurs fois) au cours d'une session client, affectant uniquement cette session.
</p><p>Les schémas inexistants ou non accessibles à l'utilisateur connecté, qui sont répertoriés dans <code>search_path</code>, sont ignorés lors de la recherche d’objets.
</p><p>Les nouveaux objets sont créés dans le premier schéma valide (accessible) apparaissant dans <code>search_path</code>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Types_de_données"><span id="Types_de_donn.C3.A9es"></span>Types de données</h3></div>
<p>PostgreSQL prend en charge une large variété de types de données natifs, notamment :
</p>
<ul><li><a href="Bool%C3%A9en" title="Booléen">Booléen</a></li>
<li><a href="Arithm%C3%A9tique_multipr%C3%A9cision" title="Arithmétique multiprécision">Arithmétique multiprécision</a> (<a href="https://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic" class="extiw external" title="en:Arbitrary-precision arithmetic">arbitrary-precision numeric</a>)</li>
<li>Caractères (<i>text, varchar, char</i>)<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup>
<ul><li>TEXT : Chaîne de longueur variable (jusqu'à 1 Go sous PostgreSQL). Non-Unicode, dépend de la page de codes du serveur. La taille de stockage varie selon le contenu et l'encodage.</li>
<li><a href="Varchar" title="Varchar">VARCHAR</a>(n | max) : Chaîne de taille variable (1 à 8 000 octets, ou jusqu'à 2 Go avec <i>max</i>). Ajoute 2 octets de stockage. Le nombre de caractères stockables dépend de l'encodage.</li>
<li>CHAR(n) : Chaîne de taille fixe (1 à 8 000 octets). Stocke exactement <i>n</i> caractères pour les encodages sur un octet, moins pour les encodages multioctets.</li></ul></li></ul>
<ul><li>Binaire</li>
<li>Date/heure (<i><a href="Timestamp" class="mw-redirect" title="Timestamp">timestamp</a>/time avec/sans fuseau horaire, date, intervalle</i>)</li>
<li>Monétaire</li>
<li>Enumération (<i>Enum</i>)</li>
<li>Chaînes de bits (<i>Bit string</i>)</li>
<li>Type de recherche textuelle</li>
<li>Composite</li></ul>
<ul><li>HStore, une extension permettant le stockage clé-valeur dans PostgreSQL<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup></li>
<li>Tableaux (<i>array</i>), de longueur variable (<a href="Vecteur_(structure_de_donn%C3%A9es)" title="Vecteur (structure de données)">vecteur</a> ou variable-length) et pouvant contenir tout type de données (y compris texte et types composites), jusqu'à 1 Go de stockage total</li>
<li>Primitives géométriques</li>
<li>Adresses <a href="IPv4" title="IPv4">IPv4</a> et <a href="IPv6" title="IPv6">IPv6</a></li>
<li>Blocs CIDR (Classless Inter-Domain Routing) et adresses MAC</li>
<li><a href="XML" class="mw-redirect" title="XML">XML</a> avec prise en charge des requêtes <a href="XPath" title="XPath">XPath</a></li>
<li><a href="UUID" class="mw-redirect" title="UUID">Identifiant unique universel</a> ou <i>Universally unique identifier</i> (UUID)</li>
<li><a href="JavaScript_Object_Notation" title="JavaScript Object Notation">JavaScript Object Notation</a> (JSON) et une version binaire plus rapide <a href="JSON_Web_Token" title="JSON Web Token">JSONB</a> (différente de BSON)<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup></li></ul>
<div class="mw-heading mw-heading4"><h4 id="Types_personnalisés"><span id="Types_personnalis.C3.A9s"></span>Types personnalisés</h4></div>
<p>Les utilisateurs peuvent créer leurs propres types de données, qui peuvent être pleinement indexables grâce aux infrastructures d'indexation de PostgreSQL, comme GiST, GIN et SP-GiST. Un exemple notable est l'intégration des types de données pour les <a href="Syst%C3%A8mes_d'information_g%C3%A9ographique" class="mw-redirect" title="Systèmes d'information géographique">systèmes d'information géographique</a> (SIG) ou en anglais <i>Geographic information system</i> (GIS) via le projet <a href="PostGIS" title="PostGIS">PostGIS</a>.
</p><p>Il existe également un type de données appelé <i>domaine</i>, qui fonctionne comme un autre type de données mais avec des contraintes supplémentaires définies par son créateur. Toute donnée insérée dans une colonne utilisant ce domaine devra respecter ces contraintes.
</p>
<div class="mw-heading mw-heading4"><h4 id="Types_de_plage_(Range_Types)"><span id="Types_de_plage_.28Range_Types.29"></span>Types de plage (Range Types)</h4></div>
<p>PostgreSQL propose aussi des types de plages, qui permettent de représenter des intervalles de données :
</p>
<ul><li>Plages discrètes (ex. : tous les entiers de 1 à 10)</li>
<li>Plages continues (ex. : tout moment entre 10h00 et 11h00)</li></ul>
<p>Les types de plages intégrés incluent les <a href="Entier_de_Gauss" title="Entier de Gauss">entiers</a>, grands entiers, nombres <a href="Nombre_d%C3%A9cimal" title="Nombre décimal">décimaux</a>, <a href="Timestamp" class="mw-redirect" title="Timestamp">timestamps</a> (avec ou sans fuseau horaire) et dates.
</p><p>Il est également possible de créer des plages personnalisées, par exemple :
</p>
<ul><li>Des plages d'adresses IP, en utilisant le type <code>inet</code></li>
<li>Des plages de nombres flottants, en utilisant le type <code><a href="Float" class="mw-disambig" title="Float">float</a></code></li></ul>
<p>Les plages prennent en charge les bornes inclusives et exclusives grâce aux caractères <code>[]</code> et <code>()</code> :
</p>
<ul><li><code>[4,9)</code> inclut 4 à 8 mais exclut 9</li></ul>
<p>Les types de plage sont compatibles avec les opérateurs d'inclusion, de chevauchement et de position relative pour faciliter les comparaisons et les recherches.
</p>
<div class="mw-heading mw-heading3"><h3 id="Objets_définis_par_l'utilisateur"><span id="Objets_d.C3.A9finis_par_l.27utilisateur"></span>Objets définis par l'utilisateur</h3></div>
<p>PostgreSQL permet la création de nouveaux types d'objets au sein de la base de données, offrant une grande flexibilité pour l'extension des fonctionnalités natives.
</p>
<ul><li>Casts : Définitions de conversions entre types de données.</li>
<li>Conversions : Mécanismes de transformation entre jeux de caractères.</li>
<li>Types de données (data type) : Création de types entièrement nouveaux.</li></ul>
<ul><li>Domaines de données (<a href="https://en.wikipedia.org/wiki/Data_domain" class="extiw external" title="en:Data domain">data domain</a>) : Types existants avec des contraintes personnalisées.</li>
<li>Fonctions : Y compris les fonctions agrégées et fonctions fenêtrées.</li>
<li><a href="Indexed_Database_API" title="Indexed Database API">Indexes</a> : Index personnalisés, y compris pour des types de données sur mesure.</li>
<li>Opérateurs : Possibilité de surcharger les opérateurs existants.</li>
<li><a href="Programmation_proc%C3%A9durale" title="Programmation procédurale">Langages procéduraux</a> : Ajout de nouveaux langages pour l'écriture de fonctions stockées.</li></ul>
<p>Grâce à ces fonctionnalités, PostgreSQL est hautement extensible, permettant d'adapter la base de données à des besoins spécifiques.
</p>
<div class="mw-heading mw-heading3"><h3 id="Héritage"><span id="H.C3.A9ritage"></span>Héritage</h3></div>
<p>Les tables peuvent hériter des caractéristiques d’une table <i>parente</i><sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup>. Les données des tables enfants apparaissent comme si elles faisaient partie de la table parente, sauf si la sélection est effectuée en utilisant le mot-clé ONLY, par exemple : <code class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">ONLY</span><span class="w"> </span><span class="n">parent_table</span><span class="p">;</span></code>. L’ajout d’une colonne à la table parente entraîne automatiquement son apparition dans la table enfant.
</p><p>L'héritage peut être utilisé pour mettre en œuvre le partitionnement des tables, en employant des <a href="D%C3%A9clencheur" title="Déclencheur">déclencheurs</a> (triggers) ou des règles pour rediriger les insertions vers la table parente et les distribuer vers les bonnes tables enfants.
</p><p>Cependant, cette fonctionnalité n'est pas totalement prise en charge. En particulier, les contraintes ne sont pas toutes héritables. Les contraintes CHECK et NOT NULL définies sur une table parente sont automatiquement héritées par ses tables enfants. En revanche, d'autres types de contraintes (UNIQUE, PRIMARY KEY et FOREIGN KEY) ne sont pas hérités.
</p><p>L’héritage permet de modéliser directement les hiérarchies de généralisation représentées dans les <a href="Mod%C3%A8le_entit%C3%A9-association" title="Modèle entité-association">diagrammes entité-association</a> (DEA) ou en anglais Entity–relationship model (ERDs) au sein de la base de données PostgreSQL.
</p>
<div class="mw-heading mw-heading3"><h3 id="Autres_fonctionnalités_de_stockage"><span id="Autres_fonctionnalit.C3.A9s_de_stockage"></span>Autres fonctionnalités de stockage</h3></div>
<ul><li>Contraintes d'<a href="Int%C3%A9grit%C3%A9_r%C3%A9f%C3%A9rentielle" title="Intégrité référentielle">intégrité référentielle</a>, y compris les <a href="Cl%C3%A9_%C3%A9trang%C3%A8re" title="Clé étrangère">clés étrangères</a> ou <i>foreign key</i>, les contraintes de colonne et les vérifications de ligne</li>
<li>Stockage des objets volumineux (large objects) en mode binaire et textuel</li>
<li><a href="Tablespace" title="Tablespace">Tablespaces</a></li></ul>
<ul><li>Collation par colonne : chaque colonne d'une table peut avoir son propre ordre indépendamment des autres colonnes ou du paramètre de collation défini pour la base de données.</li>
<li>Récupération à un instant donné (point-in-time recovery) grâce au journal des écritures anticipées (write-ahead logging)</li>
<li>Mises à niveau du système, sans avoir besoin de migrer les données ou une autre instance, avec <i><code>pg_upgrade</code></i> pour réduire le temps d’indisponibilité<sup id="cite_ref-24" class="reference"><a href="#cite_note-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Contrôle_et_connectivité"><span id="Contr.C3.B4le_et_connectivit.C3.A9"></span>Contrôle et connectivité</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Foreign_Data_Wrappers_(FDW)"><span id="Foreign_Data_Wrappers_.28FDW.29"></span>Foreign Data Wrappers (FDW)</h3></div>
<p>PostgreSQL permet de se connecter à d’autres systèmes pour récupérer des données via des <i>foreign data wrappers</i> (FDW)<sup id="cite_ref-25" class="reference"><a href="#cite_note-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup>. Ceux-ci peuvent prendre la forme de n'importe quelle source de données, telle qu'un <a href="Syst%C3%A8me_de_fichiers" title="Système de fichiers">système de fichiers</a>, un autre système de gestion de <a href="Base_de_donn%C3%A9es_relationnelle" title="Base de données relationnelle">base de données relationnelle</a> (SGBDR) ou un service web. Cela permet aux requêtes de base de données classiques d’utiliser ces sources de données comme des tables ordinaires, et même d’effectuer des jointures entre plusieurs sources de données.
</p>
<div class="mw-heading mw-heading3"><h3 id="Interfaces">Interfaces</h3></div>
<p>PostgreSQL prend en charge un <a href="Protocole_de_communication" title="Protocole de communication">protocole de communication</a> binaire qui permet aux applications de se connecter au serveur de base de données. Ce protocole est actualisé à chaque version (actuellement la version 3.0 depuis PostgreSQL 7.4) et dispose d’une spécification détaillée.
</p><p>L'implémentation officielle de ce protocole de communication est une <a href="Interface_de_programmation" title="Interface de programmation">API</a> <a href="C_(langage)" title="C (langage)">C</a>, libpq<sup id="cite_ref-26" class="reference"><a href="#cite_note-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup>. De plus, l'outil officiel ECPG permet d’intégrer des commandes SQL dans du code C. Les deux sont inclus dans la distribution standard de PostgreSQL<sup id="cite_ref-27" class="reference"><a href="#cite_note-27"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup>.
</p><p>Des bibliothèques tierces pour connecter PostgreSQL sont disponibles pour de nombreux <a href="Langage_de_programmation" title="Langage de programmation">langages de programmation</a>, notamment <a href="C%2B%2B" title="C++">C++</a>, <a href="Java_(langage)" title="Java (langage)">Java</a>, <a href="Julia_(langage)" title="Julia (langage)">Julia</a>, <a href="Python_(langage)" title="Python (langage)">Python</a>, <a href="Node.js" title="Node.js">Node.js</a>, <a href="Go_(langage)" title="Go (langage)">Go</a> et <a href="Rust_(langage)" title="Rust (langage)">Rust</a>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Langages_procéduraux"><span id="Langages_proc.C3.A9duraux"></span>Langages procéduraux</h3></div>
<p>Les langages procéduraux permettent aux développeurs d'étendre la base de données avec des <a href="Sous-programme" title="Sous-programme">sous-programmes</a> personnalisés (fonctions), souvent appelées <a href="Proc%C3%A9dure_stock%C3%A9e" title="Procédure stockée">procédures stockées</a>. Ces fonctions peuvent être utilisées pour créer des <a href="D%C3%A9clencheur" title="Déclencheur">déclencheurs</a> de base de données ou <i>triggers</i> (fonctions invoquées lors de la modification de certaines données), ainsi que des types de données personnalisés et des <a href="Fonction_d'agr%C3%A9gation" title="Fonction d'agrégation">fonctions d'agrégation</a><sup id="cite_ref-28" class="reference"><a href="#cite_note-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup>. Les langages procéduraux peuvent également être invoqués sans définir de fonction, en utilisant la commande <i><code>DO</code></i> au niveau SQL<sup id="cite_ref-29" class="reference"><a href="#cite_note-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup>.
</p><p>Les langages sont divisés en deux groupes :
</p>
<ul><li>Les procédures écrites dans des langages sûrs (<a href="Sandbox_(s%C3%A9curit%C3%A9_informatique)" title="Sandbox (sécurité informatique)">sandbox</a>) peuvent être créées et utilisées par n'importe quel utilisateur de manière sécurisée.</li>
<li>Les procédures écrites dans des langages non sûrs peuvent uniquement être créées par des super-utilisateurs, car elles permettent de contourner les restrictions de sécurité d'une base de données et peuvent accéder à des sources externes à la base de données. Certains langages, comme <a href="Perl_(langage)" title="Perl (langage)">Perl</a>, proposent à la fois des versions sûres et non sûres.</li></ul>
<p>PostgreSQL prend en charge trois langages procéduraux intégrés :
</p>
<ul><li>Plain SQL (sûr) : Les fonctions SQL plus simples peuvent être expansées directement dans la requête appelante (<a href="Extension_inline" title="Extension inline">extension inline</a>) , ce qui réduit les frais généraux des appels de fonction et permet à l'optimiseur de requêtes de "voir à l'intérieur" de la fonction<sup id="cite_ref-30" class="reference"><a href="#cite_note-30"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup>.</li>
<li>Procedural Language/PostgreSQL ou <a href="PL/pgSQL" title="PL/pgSQL">PL/pgSQL</a> (sûr) : Ce langage ressemble au langage procédural <a href="PL/SQL" title="PL/SQL">PL/SQL</a> d'Oracle et aux Modules Stockés Persistants SQL (<a href="https://en.wikipedia.org/wiki/SQL/PSM" class="extiw external" title="en:SQL/PSM">SQL/PSM</a>).</li>
<li><a href="C_(langage)" title="C (langage)">C</a> (non sûr) : Ce langage permet de charger une ou plusieurs <a href="Biblioth%C3%A8que_partag%C3%A9e" class="mw-redirect" title="Bibliothèque partagée">bibliothèques partagées</a> personnalisées dans la base de données. Les fonctions écrites en C offrent de meilleures performances, mais des bugs dans le code peuvent provoquer des plantages et potentiellement corrompre la base de données. La plupart des fonctions intégrées sont écrites en C.</li></ul>
<p>En outre, PostgreSQL permet de charger des langages procéduraux dans la base de données via des extensions. Trois extensions de langages sont incluses avec PostgreSQL pour prendre en charge <a href="Perl_(langage)" title="Perl (langage)">Perl</a>, <a href="Tcl_(langage)" class="mw-redirect" title="Tcl (langage)">Tcl</a> et <a href="Python_(langage)" title="Python (langage)">Python</a>. Pour Python, la version actuelle est Python 3, tandis que la version Python 2 a été abandonnée à partir de PostgreSQL 15. Les versions anciennes et nouvelles ne pouvaient pas être utilisées dans la même session auparavant. Des projets externes fournissent un support pour de nombreux autres langages<sup id="cite_ref-31" class="reference"><a href="#cite_note-31"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup>, tels que PL/<a href="Java_(langage)" title="Java (langage)">Java</a>, <a href="JavaScript" title="JavaScript">JavaScript</a> (PL/V8), PL/<a href="Julia_(langage)" title="Julia (langage)">Julia</a><sup id="cite_ref-32" class="reference"><a href="#cite_note-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup>, PL/<a href="R_(langage)" title="R (langage)">R</a>, PL/<a href="Ruby_(langage)" class="mw-redirect" title="Ruby (langage)">Ruby</a>, et d'autres.
</p>
<div class="mw-heading mw-heading3"><h3 id="Déclencheurs_(Triggers)"><span id="D.C3.A9clencheurs_.28Triggers.29"></span>Déclencheurs (Triggers)</h3></div>
<p>Les déclencheurs sont des événements activés par l'exécution d'instructions SQL de <a href="Langage_de_manipulation_de_donn%C3%A9es" title="Langage de manipulation de données">manipulation de données</a> (DML). Par exemple, une instruction <code><b>INSERT</b></code>peut déclencher une vérification automatique de la validité des valeurs insérées. La plupart des déclencheurs sont activés par des instructions <code><b>INSERT</b></code>ou <code><b>UPDATE</b></code>.
</p><p>PostgreSQL prend en charge les déclencheurs de manière complète et permet de les attacher aux tables. Les déclencheurs peuvent être par colonne et conditionnels : un déclencheur <code><b>UPDATE</b></code> peut cibler des colonnes spécifiques d'une table et être exécuté uniquement sous certaines conditions définies dans une clause <code><b>WHERE</b></code>. Il est également possible d'attacher des déclencheurs aux <a href="Vue_(base_de_donn%C3%A9es)" title="Vue (base de données)">vues</a> en utilisant la condition <code><b>INSTEAD OF</b></code>.
</p><p>Si plusieurs déclencheurs sont définis sur un même événement, ils sont exécutés dans l’ordre alphabétique de leur nom. En plus des fonctions écrites en <a href="PL/pgSQL" title="PL/pgSQL">PL/pgSQL</a>, les déclencheurs peuvent invoquer des fonctions écrites dans d'autres langages comme PL/Python ou PL/Perl.
</p>
<div class="mw-heading mw-heading3"><h3 id="Notifications_Asynchrones">Notifications Asynchrones</h3></div>
<p>PostgreSQL propose un système de messagerie asynchrone accessible via les commandes <code><b>NOTIFY</b></code>, <code><b>LISTEN</b></code> et <code><b>UNLISTEN</b></code>. Une session peut émettre une commande <code><b>NOTIFY</b></code> sur un canal spécifié avec une charge utile optionnelle pour signaler un événement particulier. D'autres sessions peuvent détecter ces événements en exécutant la commande <code><b>LISTEN</b></code> sur ce même canal.
</p><p>Ce mécanisme permet d'éviter les interrogations répétées (<a href="Attente_active" title="Attente active">attente active</a> ou <i>polling</i>) par les applications pour détecter des modifications, réduisant ainsi la charge inutile sur le système. Il peut être utilisé pour informer d'autres sessions lorsqu'une table est mise à jour ou pour synchroniser des applications distinctes en réponse à certaines actions.
</p><p>Les notifications sont totalement transactionnelles : elles ne sont envoyées qu'une fois la transaction confirmée (COMMIT), ce qui empêche l'envoi de messages pour des actions annulées (ROLLBACK).
</p><p>De nombreux connecteurs PostgreSQL prennent en charge ce système de notifications, notamment libpq, JDBC, Npgsql, psycopg et Node.js, facilitant son intégration avec des applications externes. PostgreSQL peut également être utilisé comme un serveur de messagerie <a href="Publish-subscribe" title="Publish-subscribe">pub/sub</a> ou un serveur de tâches en combinant <code><b>LISTEN</b></code> avec <code><b>FOR UPDATE SKIP LOCKED</b></code><sup id="cite_ref-33" class="reference"><a href="#cite_note-33"><span class="cite-bracket">[</span>33<span class="cite-bracket">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-34" class="reference"><a href="#cite_note-34"><span class="cite-bracket">[</span>34<span class="cite-bracket">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-35" class="reference"><a href="#cite_note-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Règles"><span id="R.C3.A8gles"></span>Règles</h3></div>
<p>Les règles permettent de réécrire l’arbre de requête d’une requête entrante. Elles fonctionnent comme un langage de macro pour SQL, s’exécutant automatiquement. Les "<i>Query Re-Write Rules</i>" sont attachées à une table ou une classe et modifient les requêtes <code><b>SELECT</b></code>, <code><b>INSERT</b></code>, <code><b>UPDATE</b></code>et <code><b>DELETE</b></code> avant leur exécution. Ces règles peuvent soit remplacer la requête originale, soit s’exécuter en complément de celle-ci.
</p><p>Le processus de réécriture des requêtes intervient après l’<a href="Analyse_syntaxique" title="Analyse syntaxique">analyse syntaxique</a> (<i><a href="Parsing" class="mw-redirect" title="Parsing">parsing</a></i>) mais avant l’optimisation et l’exécution.
</p><p>Toutefois, la majorité des fonctionnalités offertes par les règles ont été remplacées par des triggers, qui sont généralement préférés en raison de leur comportement plus prévisible et plus facile à gérer que les règles équivalentes.
</p>
<div class="mw-heading mw-heading3"><h3 id="Autres_fonctionnalités_de_requêtes"><span id="Autres_fonctionnalit.C3.A9s_de_requ.C3.AAtes"></span>Autres fonctionnalités de requêtes</h3></div>
<ul><li><b><a href="Transactions" class="mw-redirect" title="Transactions">Transactions</a></b> : PostgreSQL prend en charge les transactions ACID (Atomicité, Cohérence, Isolation, Durabilité) pour garantir l'intégrité des données.</li>
<li><a href="Recherche_plein_texte" title="Recherche plein texte"><b>Recherche</b> <b>plein texte</b></a> (<i>full-text search</i>): Supporte la recherche textuelle avancée avec des opérateurs et des index spécialisés.</li></ul>
<ul><li><b>Vues</b> (<i>view</i>) : Les vues permettent de créer des requêtes pré-définies qui peuvent être utilisées comme des tables.
<ul><li><b>Vues matérialisées</b> : Elles stockent les résultats d’une requête pour améliorer les performances des requêtes complexes en évitant de recalculer les résultats à chaque appel.</li>
<li><b>Vues modifiables</b> : Permet de modifier les données via une vue, ce qui est utile dans des scénarios spécifiques.</li>
<li><b>Vues récursives</b> : Prise en charge des requêtes récursives dans des structures de données hiérarchiques.</li></ul></li></ul>
<ul><li><b>Jointures</b> : Support des jointures internes, externes (complètes, à gauche et à droite) et croisées.</li>
<li><b>Sous-requêtes</b> : Permet d’inclure des sous-requêtes dans les instructions SQL principales.</li>
<li><b>Sous-requêtes corrélées</b> : Sous-requêtes qui font référence aux données de la requête principale.</li></ul>
<ul><li><b>Expressions régulières</b> : Pour effectuer des recherches puissantes et complexes sur des chaînes de caractères<sup id="cite_ref-36" class="reference"><a href="#cite_note-36"><span class="cite-bracket">[</span>36<span class="cite-bracket">]</span></a></sup>.</li>
<li><b>Expressions de table communes (CTE) et CTE modifiables</b> : Support pour définir des sous-requêtes réutilisables dans une requête, avec la possibilité de modifier les données dans certaines situations.</li></ul>
<ul><li><b>Connexions sécurisées via TLS</b> <i>(Transport Layer Security)</i> : Connexions cryptées, PostgreSQL n’utilise pas de SSL vulnérable dans les versions récentes<sup id="cite_ref-37" class="reference"><a href="#cite_note-37"><span class="cite-bracket">[</span>37<span class="cite-bracket">]</span></a></sup>.</li>
<li><b>Domaines</b> : Permet de définir des types de données personnalisés avec des contraintes intégrées.</li>
<li><b>Points de sauvegarde</b> <i>(<a href="https://en.wikipedia.org/wiki/Savepoint" class="extiw external" title="en:Savepoint">Savepoints</a>)</i> : Permet de définir des points de sauvegarde dans une transaction pour pouvoir y revenir en cas d'erreur.</li></ul>
<ul><li><b>Commit en deux phases</b> <i>(<a href="https://en.wikipedia.org/wiki/Two-phase_commit_protocol" class="extiw external" title="en:Two-phase commit protocol">two-phase commit protocol</a>)</i> : Support pour les transactions distribuées avec le protocole de commit en deux phases.</li>
<li><b>TOAST</b> <i>(The Oversized-Attribute Storage Technique)</i> : Technique permettant de stocker de manière transparente des attributs de grande taille (comme des pièces jointes MIME ou des messages XML) dans une zone séparée, avec compression automatique.</li>
<li><b>SQL embarqué</b> <i>(<a href="https://en.wikipedia.org/wiki/Embedded_SQL" class="extiw external" title="en:Embedded SQL">embedded SQL</a>)</i> : Utilisé avec un préprocesseur. Le code SQL est écrit directement dans le code C, puis traité par un préprocesseur ECPG qui le transforme en appels à une bibliothèque de code avant que celui-ci soit compilé. Ce processus fonctionne également avec C++, bien qu'il ne reconnaisse pas tous les éléments du C++.</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Modèle_de_concurrence"><span id="Mod.C3.A8le_de_concurrence"></span>Modèle de concurrence</h3></div>
<p>Le serveur PostgreSQL est basé sur des processus (et non sur des <i>threads</i>), utilisant un processus du système d'exploitation par session de base de données. Plusieurs sessions sont automatiquement réparties sur tous les CPU disponibles par le système d'exploitation. De nombreux types de requêtes peuvent également être parallélisées sur plusieurs processus de travail en arrière-plan, permettant de tirer parti de plusieurs CPU ou cœurs<sup id="cite_ref-38" class="reference"><a href="#cite_note-38"><span class="cite-bracket">[</span>38<span class="cite-bracket">]</span></a></sup>. Les applications clientes peuvent utiliser des threads et créer plusieurs connexions à la base de données depuis chaque thread<sup id="cite_ref-39" class="reference"><a href="#cite_note-39"><span class="cite-bracket">[</span>39<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Sécurité"><span id="S.C3.A9curit.C3.A9"></span>Sécurité</h2></div>
<p>PostgreSQL gère sa sécurité interne sur une base par rôle (ou <a href="https://en.wikipedia.org/wiki/Role-oriented_programming" class="extiw external" title="en:Role-oriented programming">role-oriented programming</a>). Un rôle est généralement considéré comme un utilisateur (un rôle pouvant se connecter) ou un groupe (un rôle dont d'autres rôles sont membres). Des permissions peuvent être accordées ou révoquées sur n'importe quel objet, jusqu'au niveau de la colonne, et peuvent permettre ou empêcher la visibilité/la création/la modification/la suppression d'objets au niveau de la base de données, du schéma, de la table et des lignes.
</p><p>La fonctionnalité SECURITY LABEL<sup id="cite_ref-40" class="reference"><a href="#cite_note-40"><span class="cite-bracket">[</span>40<span class="cite-bracket">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-41" class="reference"><a href="#cite_note-41"><span class="cite-bracket">[</span>41<span class="cite-bracket">]</span></a></sup> de PostgreSQL (extension aux standards SQL) permet une sécurité supplémentaire avec un module chargeable intégré qui supporte un <a href="Contr%C3%B4le_d'acc%C3%A8s_obligatoire" title="Contrôle d'accès obligatoire">contrôle d'accès obligatoire</a> (MAC), basé sur la politique de sécurité <a href="SELinux" title="SELinux">Security-Enhanced Linux (SELinux).</a><sup id="cite_ref-42" class="reference"><a href="#cite_note-42"><span class="cite-bracket">[</span>42<span class="cite-bracket">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-43" class="reference"><a href="#cite_note-43"><span class="cite-bracket">[</span>43<span class="cite-bracket">]</span></a></sup>
</p><p>PostgreSQL prend en charge nativement un large éventail de mécanismes d'authentification externes, notamment :
</p>
<ul><li>Mot de passe : soit <a href="https://en.wikipedia.org/wiki/Salted_Challenge_Response_Authentication_Mechanism" class="extiw external" title="en:Salted Challenge Response Authentication Mechanism">SCRAM-SHA-256</a><sup id="cite_ref-44" class="reference"><a href="#cite_note-44"><span class="cite-bracket">[</span>44<span class="cite-bracket">]</span></a></sup>, <a href="MD5" title="MD5">MD5</a> ou texte clair</li>
<li><a href="Interface_de_programmation" title="Interface de programmation">Interface de programmation</a> pour les <a href="Programme_informatique" title="Programme informatique">programmes</a> couvrant la <a href="S%C3%A9curit%C3%A9_des_syst%C3%A8mes_d'information" title="Sécurité des systèmes d'information">sécurité des systèmes d'information</a> (<a href="GSS-API" title="GSS-API">GSS-API</a>)</li>
<li><a href="Security_Support_Provider_Interface" title="Security Support Provider Interface">Security Support Provider Interface</a> (SSPI)</li>
<li><a href="Kerberos_(protocole)" title="Kerberos (protocole)">Kerberos (protocole)</a></li></ul>
<ul><li><a href="https://en.wikipedia.org/wiki/Ident_protocol" class="extiw external" title="en:Ident protocol">ident</a> (associe le nom d'utilisateur du système d'exploitation fourni par un serveur <i>ident</i> au nom d'utilisateur de la base de données)</li>
<li>Peer (associe le nom d'utilisateur local au nom d'utilisateur de la base de données)</li>
<li><i><a href="Lightweight_Directory_Access_Protocol" title="Lightweight Directory Access Protocol">Lightweight Directory Access Protocol</a></i> (LDAP)</li>
<li><a href="Active_Directory" title="Active Directory">Active Directory</a> (AD)</li>
<li><a href="Remote_Authentication_Dial-In_User_Service" title="Remote Authentication Dial-In User Service">RADIUS</a></li>
<li>Certificat</li>
<li><a href="Pluggable_Authentication_Modules" title="Pluggable Authentication Modules">Pluggable Authentication Modules</a> (PAM)</li></ul>
<p>Les méthodes GSSAPI, SSPI, Kerberos, peer, ident et certificat peuvent également utiliser un fichier <i>map</i> spécifié qui liste quels utilisateurs, correspondant à ce système d'authentification, sont autorisés à se connecter en tant qu'utilisateur de la base de données spécifique.
</p><p>Ces méthodes sont spécifiées dans le <a href="Fichier_de_configuration" title="Fichier de configuration">fichier de configuration</a> d'authentification basé sur l'hôte du cluster <code>pg_hba.conf</code>, qui détermine quelles connexions sont autorisées. Cela permet de contrôler quel utilisateur peut se connecter à quelle base de données, d'où ils peuvent se connecter (<a href="Adresse_IP" title="Adresse IP">adresse IP</a>, plage d'adresses IP, socket de domaine), quel système d'authentification sera appliqué, et si la connexion doit utiliser le protocole <a href="Transport_Layer_Security" title="Transport Layer Security">Transport Layer Security</a> (TLS).
</p>
<div class="mw-heading mw-heading2"><h2 id="Standards_de_conformité"><span id="Standards_de_conformit.C3.A9"></span>Standards de conformité</h2></div>
<p>PostgreSQL revendique une conformité élevée, mais pas complète, avec la dernière norme SQL ("à partir de la version 17, sortie en septembre 2024, PostgreSQL respecte au moins 170 des 177 fonctionnalités obligatoires pour la conformité au noyau SQL:2023 <a href="https://en.wikipedia.org/wiki/SQL:2023" class="extiw external" title="en:SQL:2023"><span class="indicateur-langue" title="Article en anglais : « SQL:2023 »">(en)</span></a>", et aucune autre base de données n'est totalement conforme à cette norme<sup id="cite_ref-45" class="reference"><a href="#cite_note-45"><span class="cite-bracket">[</span>45<span class="cite-bracket">]</span></a></sup>). Une exception concerne la gestion des identifiants non entre guillemets comme les noms de tables ou de colonnes. Dans PostgreSQL, ces identifiants sont convertis en minuscules en interne<sup id="cite_ref-46" class="reference"><a href="#cite_note-46"><span class="cite-bracket">[</span>46<span class="cite-bracket">]</span></a></sup>, alors que la norme stipule que les identifiants non entre guillemets doivent être convertis en majuscules. D'autres lacunes concernent l'absence de tables temporelles permettant l'enregistrement automatique des versions de lignes pendant les transactions, avec la possibilité de naviguer dans le temps (prédicat FOR SYSTEM TIME), bien que des extensions tierces relativement conformes aux normes SQL soient disponibles<sup id="cite_ref-47" class="reference"><a href="#cite_note-47"><span class="cite-bracket">[</span>47<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Benchmarks_et_performances">Benchmarks et performances</h2></div>
<p>Depuis 2015, PostgreSQL a connu des améliorations significatives en termes de performances et de scalabilité.
</p>
<div class="mw-heading mw-heading3"><h3 id="Améliorations_des_performances"><span id="Am.C3.A9liorations_des_performances"></span>Améliorations des performances</h3></div>
<p>PostgreSQL 16 publiée en septembre 2024, cette version a apporté des améliorations notables en matière de sécurité et de performance. Les benchmarks montrent des gains significatifs par rapport aux versions précédentes, notamment PostgreSQL 13<sup id="cite_ref-48" class="reference"><a href="#cite_note-48"><span class="cite-bracket">[</span>48<span class="cite-bracket">]</span></a></sup>.
</p><p>La comparaison avec MySQL indique selon des études récentes que, pour la plupart des charges de travail, les performances de PostgreSQL et de MySQL sont comparables, avec des variations allant jusqu'à 30 %. Cependant, MySQL peut avoir un avantage dans les charges de travail extrêmement intensives en écriture<sup id="cite_ref-49" class="reference"><a href="#cite_note-49"><span class="cite-bracket">[</span>49<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Benchmarks_récents"><span id="Benchmarks_r.C3.A9cents"></span>Benchmarks récents</h3></div>
<p>La comparaison avec Dolt et MySQL publié en décembre 2023 par AWS a évalué PostgreSQL avec la fonctionnalité Dedicated Log Volume (DLV), montrant des gains de performance via l’outil pgbench<sup id="cite_ref-50" class="reference"><a href="#cite_note-50"><span class="cite-bracket">[</span>50<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Scalabilité_et_optimisation"><span id="Scalabilit.C3.A9_et_optimisation"></span>Scalabilité et optimisation</h3></div>
<p>La scalabilité sur les systèmes multi-cœurs de PostgreSQL montre une progression linéaire des performances avec l’augmentation du nombre de cœurs CPU<sup id="cite_ref-51" class="reference"><a href="#cite_note-51"><span class="cite-bracket">[</span>51<span class="cite-bracket">]</span></a></sup>.
</p><p>L'optimisation des requêtes via des techniques comme Lero, basées sur l’<a href="Apprentissage_automatique" title="Apprentissage automatique">apprentissage automatique</a>, réduisent le temps d’exécution des requêtes jusqu'à 70 %<sup id="cite_ref-52" class="reference"><a href="#cite_note-52"><span class="cite-bracket">[</span>52<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Plateformes_(OS)"><span id="Plateformes_.28OS.29"></span>Plateformes (OS)</h2></div>
<p>PostgreSQL est disponible pour les systèmes d'exploitation suivants : <a href="Linux" title="Linux">Linux</a> (toutes les distributions récentes), <a href="ARMv8" title="ARMv8">ARM</a> 64 bits et x86-64 avec des installateurs disponibles et testés pour <a href="MacOS" title="MacOS">macOS</a> version 10.14 et plus récentes, <a href="Windows" class="mw-redirect" title="Windows">Windows</a> (avec des installateurs disponibles et testés pour <a href="Windows_Server_2022" title="Windows Server 2022">Windows Server 2022</a> et 2016 64 bits), <a href="FreeBSD" title="FreeBSD">FreeBSD</a>, <a href="OpenBSD" title="OpenBSD">OpenBSD</a>, <a href="NetBSD" title="NetBSD">NetBSD</a>, <a href="DragonFlyBSD" class="mw-redirect" title="DragonFlyBSD">DragonFlyBSD</a>, et d'autres sans exécutables binaires officiels (mais probablement disponibles de manière non officielle) tels que <a href="Solaris_(syst%C3%A8me_d'exploitation)" title="Solaris (système d'exploitation)">Solaris</a> et <a href="Illumos" title="Illumos">illumos</a>.
</p><p>PostgreSQL peut être exécuté sur les architectures suivantes (et systèmes d'exploitation) : x86-64 64 bits et x86 32 bits sur Windows et d'autres systèmes d'exploitation ; en plus de Windows, il est également compatible avec : ARM 64 bits<sup id="cite_ref-53" class="reference"><a href="#cite_note-53"><span class="cite-bracket">[</span>53<span class="cite-bracket">]</span></a></sup> et l'ARM 32 bits plus ancien, y compris des versions plus anciennes comme l'ARMv6 sur <a href="Raspberry_Pi" title="Raspberry Pi">Raspberry Pi</a>[94], <a href="RISC-V" title="RISC-V">RISC-V</a>, z/Architecture, <a href="S/390" class="mw-redirect" title="S/390">S/390</a>, <a href="PowerPC" title="PowerPC">PowerPC</a> (y compris Power ISA 64 bits), <a href="Architecture_SPARC" title="Architecture SPARC">SPARC</a> (également 64 bits), MIPS et <a href="PA-RISC" title="PA-RISC">PA-RISC</a>. Il a également été connu pour fonctionner sur d'autres plateformes, bien qu'il n'ait pas été testé depuis plusieurs années pour les versions récentes<sup id="cite_ref-54" class="reference"><a href="#cite_note-54"><span class="cite-bracket">[</span>54<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Outils_d'administration"><span id="Outils_d.27administration"></span>Outils d'administration</h2></div>
<table class="wikitable mw-collapsible mw-collapsed floatright">
<tbody><tr>
<th>Exemple de session psql<sup id="cite_ref-55" class="reference"><a href="#cite_note-55"><span class="cite-bracket">[</span>55<span class="cite-bracket">]</span></a></sup>
</th></tr>
<tr>
<td><div class="mw-highlight mw-highlight-lang-psql mw-content-ltr" dir="ltr"><pre><span></span><span class="gp">regression=#</span><span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="n">foo</span><span class="p">;</span>
<span class="gs">ERROR:</span><span class="gr"> column "foo" does not exist</span>
<span class="gs">CONTEXT:</span><span class="gr"> PL/pgSQL function "test1" while casting return value to function's return type</span>
<span class="gs">LINE 1:</span><span class="gr"> select foo;</span>
<span class="gr"> ^</span>
<span class="gp">regression=#</span><span class="w"> </span><span class="kp">\q</span>
</pre></div>
<div class="mw-highlight mw-highlight-lang-psql mw-content-ltr" dir="ltr"><pre><span></span><span class="gp">peter@localhost testdb=></span><span class="w"> </span><span class="kp">\a</span><span class="w"> </span><span class="kp">\t</span><span class="w"> </span><span class="kp">\x</span>
<span class="go">Output format is aligned.</span>
<span class="go">Tuples only is off.</span>
<span class="go">Expanded display is on.</span>
</pre></div>
<div class="mw-highlight mw-highlight-lang-psql mw-content-ltr" dir="ltr"><pre><span></span><span class="gp">regression=#</span><span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="s1">'\x'</span><span class="p">;</span>
<span class="gs">WARNING:</span><span class="go"> nonstandard use of escape in a string literal</span>
<span class="gs">LINE 1:</span><span class="go"> select '\x';</span>
<span class="go">----------</span>
<span class="go"> x</span>
<span class="go">(1 row)</span>
<span class="gp">regression=#</span><span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="sa">E</span><span class="s1">'\x'</span><span class="p">;</span>
</pre></div>
<div class="mw-highlight mw-highlight-lang-psql mw-content-ltr" dir="ltr"><pre><span></span><span class="gp">piro=></span><span class="w"> </span><span class="kp">\set</span><span class="w"> </span><span class="ss">foo</span><span class="w"> </span><span class="ss">30;</span>
<span class="gp">piro=></span><span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="n">test</span><span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="n">foo</span><span class="w"> </span><span class="o"><=</span><span class="w"> </span><span class="nv">:foo</span><span class="p">;</span>
<span class="go"> foo | bar </span>
<span class="go">-----+-----</span>
<span class="go"> 10 | </span>
<span class="go"> 20 | </span>
<span class="go">(2 rows)</span>
</pre></div>
<div class="mw-highlight mw-highlight-lang-psql mw-content-ltr" dir="ltr"><pre><span></span><span class="gp">testdb=></span><span class="w"> </span><span class="kp">\set</span><span class="w"> </span><span class="ss">foo</span><span class="w"> </span><span class="s1">'my_table'</span>
<span class="gp">testdb=></span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="nv">:"foo"</span><span class="p">;</span>
<span class="gp">testdb=></span><span class="w"> </span><span class="kp">\set</span><span class="w"> </span><span class="ss">content</span><span class="w"> </span><span class="sb">`cat my_file.txt`</span>
<span class="gp">testdb=></span><span class="w"> </span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">my_table</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="nv">:'content'</span><span class="p">);</span>
</pre></div>
<div class="mw-highlight mw-highlight-lang-psql mw-content-ltr" dir="ltr"><pre><span></span><span class="gp">regression=#</span><span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="p">(</span>
<span class="gp">regression(#</span><span class="w"> </span><span class="mf">1</span><span class="p">);</span>
<span class="go"> ?column? </span>
<span class="go">----------</span>
<span class="go"> 1</span>
<span class="go">(1 row)</span>
</pre></div>
<div class="mw-highlight mw-highlight-lang-psql mw-content-ltr" dir="ltr"><pre><span></span><span class="gp">piro=></span><span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="p">(</span>
<span class="gp">piro(></span><span class="w"> </span><span class="s1">'</span>
<span class="gp">piro'></span><span class="s1"> '</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="s">$$</span>
<span class="gp">piro$></span><span class="s"> $$</span><span class="p">)</span>
<span class="gp">piro-></span><span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="s s-Name">"</span>
<span class="gp">piro"></span><span class="s s-Name"> foo"</span><span class="p">;</span>
<span class="gs">ERROR:</span><span class="gr"> relation "</span>
<span class="gr">foo" does not exist</span>
<span class="gs">LINE 5:</span><span class="gr"> from "</span>
<span class="gr"> ^</span>
</pre></div>
<div class="mw-highlight mw-highlight-lang-psql mw-content-ltr" dir="ltr"><pre><span></span><span class="gp">testdb=></span><span class="w"> </span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">my_table</span><span class="w"> </span><span class="p">(</span>
<span class="k">first</span><span class="w"> </span><span class="nb">integer</span><span class="w"> </span><span class="k">not</span><span class="w"> </span><span class="k">null</span><span class="w"> </span><span class="k">default</span><span class="w"> </span><span class="mf">0</span><span class="p">,</span>
<span class="k">second</span><span class="w"> </span><span class="nb">text</span><span class="p">)</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="c1">-- end of command</span>
<span class="go">CREATE TABLE</span>
<span class="gp">=#</span><span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="s1">'0x10'</span><span class="o">::</span><span class="n">mpz</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="s s-Name">"hex"</span><span class="p">,</span><span class="w"> </span><span class="s1">'10'</span><span class="o">::</span><span class="n">mpz</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="s s-Name">"dec"</span><span class="p">,</span>
<span class="gp">-#</span><span class="w"> </span><span class="s1">'010'</span><span class="o">::</span><span class="n">mpz</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">oct</span><span class="p">,</span><span class="w"> </span><span class="s1">'0b10'</span><span class="o">::</span><span class="n">mpz</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">bin</span><span class="p">;</span><span class="w"> </span><span class="c1">-- Table output</span>
<span class="go"> hex | dec | oct | bin</span>
<span class="go">-----+-----+-----+-----</span>
<span class="go"> 16 | 10 | 8 | 2</span>
<span class="go">(1 row)</span>
</pre></div>
<div class="mw-highlight mw-highlight-lang-psql mw-content-ltr" dir="ltr"><pre><span></span><span class="gp">regression=#</span><span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="n">schemaname</span><span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="n">pg_tables</span><span class="w"> </span><span class="k">limit</span><span class="w"> </span><span class="mf">3</span><span class="p">;</span><span class="w"> </span><span class="c1">-- One field output</span>
<span class="go"> schemaname </span>
<span class="go">------------</span>
<span class="go"> pg_catalog</span>
<span class="go"> pg_catalog</span>
<span class="go"> pg_catalog</span>
<span class="go">(3 rows)</span>
<span class="gp">=#</span><span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="mf">10.0</span><span class="p">,</span><span class="w"> </span><span class="mf">1e-6</span><span class="p">,</span><span class="w"> </span><span class="mf">1E+6</span><span class="p">;</span>
<span class="go"> ?column? | ?column? | ?column? </span>
<span class="go">----------+----------+----------</span>
<span class="go"> 10.0 | 0.000001 | 1000000</span>
<span class="go">(1 row)</span>
<span class="gp">regression=#</span><span class="w"> </span><span class="k">begin</span><span class="p">;</span>
<span class="go">BEGIN</span>
<span class="gp">regression=#</span><span class="w"> </span><span class="k">create</span><span class="w"> </span><span class="k">table</span><span class="w"> </span><span class="n">asdf</span><span class="w"> </span><span class="p">(</span><span class="n">foo</span><span class="w"> </span><span class="nb">serial</span><span class="w"> </span><span class="k">primary</span><span class="w"> </span><span class="k">key</span><span class="p">);</span>
<span class="gs">NOTICE:</span><span class="go"> CREATE TABLE will create implicit sequence "asdf_foo_seq" for serial column "asdf.foo"</span>
<span class="gs">NOTICE:</span><span class="go"> CREATE TABLE / PRIMARY KEY will create implicit index "asdf_pkey" for table "asdf"</span>
<span class="go">CREATE TABLE</span>
<span class="gp">regression=#</span><span class="w"> </span><span class="k">insert</span><span class="w"> </span><span class="k">into</span><span class="w"> </span><span class="n">asdf</span><span class="w"> </span><span class="k">values</span><span class="w"> </span><span class="p">(</span><span class="mf">10</span><span class="p">)</span><span class="w"> </span><span class="k">returning</span><span class="w"> </span><span class="n">foo</span><span class="p">;</span>
<span class="go"> foo </span>
<span class="go">-----</span>
<span class="go"> 10</span>
<span class="go">(1 row)</span>
<span class="go">INSERT 0 1</span>
<span class="gp">regression=#</span><span class="w"> </span><span class="k">ROLLBACK</span><span class="w"> </span><span class="p">;</span>
<span class="go">ROLLBACK</span>
</pre></div>
</td></tr></tbody></table>
<div class="mw-heading mw-heading3"><h3 id="Interfaces_et_outils_open_source_pour_PostgreSQL">Interfaces et outils open source pour PostgreSQL</h3></div>
<div class="mw-heading mw-heading4"><h4 id="psql">psql</h4></div>
<p>psql est une <a href="Interface_en_ligne_de_commande" title="Interface en ligne de commande">interface en ligne de commande</a> <code>psql</code> permettant la saisie de requêtes SQL, directement ou par l'utilisation de <a href="Proc%C3%A9dure_stock%C3%A9e" title="Procédure stockée">procédures stockées</a>. De plus, psql offre un certain nombre de méta-commandes et diverses fonctionnalités semblables à une <a href="Interface_syst%C3%A8me" title="Interface système">interface système</a> (ou shell) pour faciliter l'écriture de scripts et l'automatisation d'un large éventail de tâches comme la complétion automatique des noms d'objets et de la syntaxe SQL.
</p>
<div class="mw-heading mw-heading4"><h4 id="pgAdmin">pgAdmin</h4></div>
<p>pgAdmin<sup id="cite_ref-56" class="reference"><a href="#cite_note-56"><span class="cite-bracket">[</span>56<span class="cite-bracket">]</span></a></sup> est un outil d'administration d'<a href="Interface_graphique" title="Interface graphique">interface graphique</a> pour PostgreSQL distribué selon les termes de la licence PostgreSQL<sup id="cite_ref-57" class="reference"><a href="#cite_note-57"><span class="cite-bracket">[</span>57<span class="cite-bracket">]</span></a></sup>. Disponible sur plusieurs plateformes, il prend en charge plus d'une douzaine de langues. La deuxième version <i><a rel="nofollow" class="external text" href="https://web.archive.org/web/20020118021759/https://www.pgadmin.org/">pgAdmin II</a></i> a été publiée en janvier 2002. Puis <i><a rel="nofollow" class="external text" href="https://web.archive.org/web/20040602223350/http://www.pgadmin.org/pgadmin3/index.php">pgAdmin III</a></i> a été publié en mai 2004, écrit en C++ avec le framework <a href="WxWidgets" title="WxWidgets">WxWidgets</a>, cette version a permis une compatibilité accrue avec divers systèmes d’exploitation. En septembre 2016<sup id="cite_ref-58" class="reference"><a href="#cite_note-58"><span class="cite-bracket">[</span>58<span class="cite-bracket">]</span></a></sup>, <i>pgAdmin 4</i> a été lancé avec une architecture basée sur le web, utilisant <a href="Python_(langage)" title="Python (langage)">Python</a> (<a href="Flask_(framework)" title="Flask (framework)">Flask</a>) pour le backend et <a href="Qt" title="Qt">Qt</a> pour l’interface utilisateur.
</p>
<div class="mw-heading mw-heading4"><h4 id="phpPgAdmin">phpPgAdmin</h4></div>
<p><a href="PhpPgAdmin" title="PhpPgAdmin">phpPgAdmin</a> est une interface web d’administration pour PostgreSQL. L'<a href="Logiciel_applicatif" class="mw-redirect" title="Logiciel applicatif">outil</a> d'<a href="Administrateur_de_bases_de_donn%C3%A9es" class="mw-redirect" title="Administrateur de bases de données">administration</a> est écrit en <a href="PHP%3A_Hypertext_Preprocessor" class="mw-redirect" title="PHP: Hypertext Preprocessor">PHP</a> et supporte les différentes <a href="Branche_(gestion_de_configuration)" title="Branche (gestion de configuration)">branches</a> de PostgreSQL depuis sa <a href="Version_d'un_logiciel#Version_finale_(ou_stable)" title="Version d'un logiciel">version</a> 7. L'interface s'appuie sur des scripts PHP et sur la base de données PostgreSQL pour favoriser les diverses tâches d'administration via le <a href="World_Wide_Web" title="World Wide Web">World Wide Web</a>.
</p>
<div class="mw-heading mw-heading4"><h4 id="PostgreSQL_Studio">PostgreSQL Studio</h4></div>
<p>PostgreSQL Studio permet aux utilisateurs d'effectuer les principales tâches de développement de bases de données PostgreSQL via une console web. Il facilite le travail avec des bases de données dans le cloud, sans nécessiter l'ouverture de pare-feu<sup id="cite_ref-59" class="reference"><a href="#cite_note-59"><span class="cite-bracket">[</span>59<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading4"><h4 id="TeamPostgreSQL">TeamPostgreSQL</h4></div>
<p>TeamPostgreSQL est une interface web basée sur <a href="Ajax_(informatique)" title="Ajax (informatique)">AJAX</a>/<a href="JavaScript" title="JavaScript">JavaScript</a> pour PostgreSQL. Elle permet d'explorer, gérer et créer des objets de données et des bases de données directement depuis un navigateur web. L'interface comprend un éditeur SQL avec des onglets, l'autocomplétion, des widgets d'édition de lignes, une navigation interactive via les clés étrangères, ainsi qu'un système de favoris pour les scripts fréquemment utilisés. TeamPostgreSQL prend en charge SSH à la fois pour l'interface web et les connexions aux bases de données. Des installateurs sont disponibles pour Windows, Macintosh et Linux, ainsi qu'une archive multiplateforme exécutable via un simple script<sup id="cite_ref-60" class="reference"><a href="#cite_note-60"><span class="cite-bracket">[</span>60<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading4"><h4 id="LibreOffice,_OpenOffice.org"><span id="LibreOffice.2C_OpenOffice.org"></span>LibreOffice, OpenOffice.org</h4></div>
<p><a href="LibreOffice_Basic" class="mw-redirect" title="LibreOffice Basic">LibreOffice Base</a> et <a href="OpenOffice.org_Base" class="mw-redirect" title="OpenOffice.org Base">OpenOffice.org Base</a> peuvent être utilisés comme interfaces frontales pour PostgreSQL.
</p>
<div class="mw-heading mw-heading4"><h4 id="pgBadger">pgBadger</h4></div>
<p>pgBadger est un analyseur de journaux pour PostgreSQL, permettant de générer des rapports détaillés à partir des fichiers de logs de la base de données.
</p>
<div class="mw-heading mw-heading4"><h4 id="pgDevOps">pgDevOps</h4></div>
<p>pgDevOps est une suite d’outils web permettant d'installer et de gérer plusieurs versions de PostgreSQL, ainsi que ses extensions et composants communautaires. Elle offre aussi des fonctionnalités pour le développement de requêtes SQL, la surveillance des bases de données et l’identification des problèmes de performance<sup id="cite_ref-61" class="reference"><a href="#cite_note-61"><span class="cite-bracket">[</span>61<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading4"><h4 id="Adminer">Adminer</h4></div>
<p><a href="Adminer" title="Adminer">Adminer</a> est un outil d’administration web simple pour PostgreSQL et d’autres bases de données, écrit en <a href="PHP" title="PHP">PHP</a>.
</p>
<div class="mw-heading mw-heading4"><h4 id="pgBackRest">pgBackRest</h4></div>
<p>pgBackRest est un outil de sauvegarde et de restauration pour PostgreSQL, offrant la prise en charge des sauvegardes complètes, différentielles et incrémentales<sup id="cite_ref-62" class="reference"><a href="#cite_note-62"><span class="cite-bracket">[</span>62<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading4"><h4 id="pgaudit">pgaudit</h4></div>
<p>pgaudit est une extension PostgreSQL permettant d’effectuer un audit détaillé des sessions et des objets via le système de journalisation standard de PostgreSQL<sup id="cite_ref-63" class="reference"><a href="#cite_note-63"><span class="cite-bracket">[</span>63<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading4"><h4 id="WAL-E">WAL-E</h4></div>
<p>WAL-E est un outil de sauvegarde et de restauration basé sur le mécanisme de journaux de transactions (WAL) de PostgreSQL, écrit en Python<sup id="cite_ref-64" class="reference"><a href="#cite_note-64"><span class="cite-bracket">[</span>64<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading4"><h4 id="DBeaver">DBeaver</h4></div>
<p><a href="DBeaver" title="DBeaver">DBeaver</a> est un outil d’administration GUI gratuit et open source pour PostgreSQL. Il propose des diagrammes entité-relation visuels et des fonctionnalités comme IntelliSense. Une version commerciale (PRO) est également disponible.
</p>
<div class="mw-heading mw-heading3"><h3 id="Outils_propriétaires"><span id="Outils_propri.C3.A9taires"></span>Outils propriétaires</h3></div>
<p>Plusieurs entreprises proposent des outils propriétaires pour PostgreSQL, souvent construits autour d’un noyau universel adaptable à différentes bases de données. Ces outils partagent les fonctionnalités d’administration des logiciels open source, mais offrent des améliorations en matière de <a href="Mod%C3%A9lisation_des_donn%C3%A9es" title="Modélisation des données">modélisation des données</a>, importation, exportation et reporting.
</p>
<div class="mw-heading mw-heading3"><h3 id="Outils_connexes">Outils connexes</h3></div>
<ul><li><a href="DBLink" title="DBLink">DBLink</a> est un module permettant de travailler sur deux bases différentes.</li>
<li><a href="ECPG" title="ECPG">ECPG</a> est un outil de SQL embarqué.</li>
<li><a href="PostGIS" title="PostGIS">PostGIS</a> est le module spatial qui confère à PostgreSQL le statut de SGBDR spatial.</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Outils_de_conception">Outils de conception</h3></div>
<div class="mw-heading mw-heading4"><h4 id="Windows">Windows</h4></div>
<ul><li>DeZign for Databases est un utilitaire pour les administrateurs et les concepteurs de bases de données qui ont besoin de créer des scripts SQL basés sur leurs diagrammes tels que <a href="UML_(informatique)" title="UML (informatique)">UML</a> (Unified Modeling Language) ou ERD (Modèle entité-association).</li></ul>
<ul><li>ERBuilder Data Modeler est un logiciel de modélisation de bases de données, c'est un outil visuel pour la modélisation de bases de données et la génération de scripts DDL en utilisant une approche <a href="Mod%C3%A8le_entit%C3%A9-association" title="Modèle entité-association">entité-association</a>.</li></ul>
<ul><li>Toad Data Modeler <a href="https://en.wikipedia.org/wiki/Toad_Data_Modeler" class="extiw external" title="en:Toad Data Modeler"><span class="indicateur-langue" title="Article en anglais : « Toad Data Modeler »">(en)</span></a> vous permet de déployer des modifications précises des structures de données sur plus de 20 plates-formes différentes y compris PostgreSQL. Il permet aussi de construire des modèles de données logiques et physiques, de comparer et de synchroniser des modèles, de générer rapidement des SQL / DDL complexes<sup id="cite_ref-65" class="reference"><a href="#cite_note-65"><span class="cite-bracket">[</span>65<span class="cite-bracket">]</span></a></sup>.</li></ul>
<div class="mw-heading mw-heading4"><h4 id="Multiplateforme">Multiplateforme</h4></div>
<ul><li><a href="Kexi" title="Kexi">Kexi</a> est une <a href="Interface_graphique" title="Interface graphique">interface graphique</a> libre de contrôle des bases de données parmi les plus répandues dans le monde Unix/Linux.</li>
<li><a href="Open_ModelSphere" title="Open ModelSphere">Open ModelSphere</a> est un outil de <a href="G%C3%A9nie_logiciel" title="Génie logiciel">génie logiciel</a> permettant la modélisation relationnelle de données, la modélisation des <a href="Processus_d'affaires" title="Processus d'affaires">processus d'affaires</a>, et la modélisation UML.</li></ul>
<ul><li>Umbrello UML Modeller est un <a href="Logiciel_libre" title="Logiciel libre">logiciel libre</a> de modélisation <a href="UML_(informatique)" title="UML (informatique)">UML</a> disponible en natif sous Unix et faisant partie de l'environnement de bureau <a href="KDE" title="KDE">KDE</a>.</li></ul>
<ul><li><a href="StarUML" title="StarUML">StarUML</a> est un logiciel de modélisation UML qui gère la plupart des diagrammes spécifiés dans la norme UML 2.0. StarUML propose une extension pour le support de la génération du DDL (Data Definition Language) à partir de PostgreSQL.</li></ul>
<ul><li><a href="Navicat" title="Navicat">Navicat</a> est une <a href="Suite_logicielle" title="Suite logicielle">suite logicielle</a> graphique de gestion et de développement de bases de données. Navicat est un outil <a href="Logiciel_multiplateforme" title="Logiciel multiplateforme">multiplate-forme</a> qui fonctionne sous Microsoft Windows, macOS et Linux.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Utilisateurs_notables">Utilisateurs notables</h2></div>
<p>Des organisations et produits notables qui utilisent PostgreSQL comme base de données principale incluent :
</p>
<div class="mw-heading mw-heading3"><h3 id="A_l'international"><span id="A_l.27international"></span>A l'international</h3></div>
<ul><li><a href="Microsoft" title="Microsoft">Microsoft</a>, utilisé pour un tableau de bord analytique à l’échelle du pétaoctet, "Release Quality View" (RQV), qui suit la qualité des mises à jour de Windows en analysant 20 000 types de métriques provenant de plus de 800 millions d’appareils Windows.</li>
<li>En 2009, le réseau social <a href="Myspace" title="Myspace">Myspace</a> utilisait la base de données nCluster d’Aster Data Systems, qui était construite sur PostgreSQL.</li>
<li><a href="https://en.wikipedia.org/wiki/Geni.com" class="extiw external" title="en:Geni.com">Geni.com</a> utilise PostgreSQL pour leur base de données de généalogie<sup id="cite_ref-66" class="reference"><a href="#cite_note-66"><span class="cite-bracket">[</span>66<span class="cite-bracket">]</span></a></sup>.</li>
<li><a href="OpenStreetMap" title="OpenStreetMap">OpenStreetMap</a>, un projet collaboratif pour créer une carte du monde libre et modifiable<sup id="cite_ref-67" class="reference"><a href="#cite_note-67"><span class="cite-bracket">[</span>67<span class="cite-bracket">]</span></a></sup>.</li>
<li><a href="Afilias" title="Afilias">Afilias</a>, opérateur des registres de noms de domaine .org, .info, et d’autres extensions<sup id="cite_ref-68" class="reference"><a href="#cite_note-68"><span class="cite-bracket">[</span>68<span class="cite-bracket">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-Beginning_PHP_and_PostgreSQL_8:_From_Novice_to_Professional_69-0" class="reference"><a href="#cite_note-Beginning_PHP_and_PostgreSQL_8:_From_Novice_to_Professional-69"><span class="cite-bracket">[</span>69<span class="cite-bracket">]</span></a></sup>.</li></ul>
<ul><li><a href="Sony_Online_Entertainment" class="mw-redirect" title="Sony Online Entertainment">Sony Online</a>, utilisé pour des jeux en ligne massivement multijoueurs<sup id="cite_ref-70" class="reference"><a href="#cite_note-70"><span class="cite-bracket">[</span>70<span class="cite-bracket">]</span></a></sup>.</li>
<li><a href="BASF" title="BASF">BASF</a>, plateforme d’achat pour leur portail d’agro-industrie.</li></ul>
<ul><li><a href="Reddit" title="Reddit">Reddit</a>, site de partage d’actualités et de discussions en ligne<sup id="cite_ref-71" class="reference"><a href="#cite_note-71"><span class="cite-bracket">[</span>71<span class="cite-bracket">]</span></a></sup>.</li></ul>
<ul><li><a href="Skype" title="Skype">Skype</a>, utilisé pour la gestion des bases de données centrales du service de VoIP.</li></ul>
<ul><li><a href="https://en.wikipedia.org/wiki/Sun_xVM" class="extiw external" title="en:Sun xVM">Sun xVM</a>, suite de virtualisation et d’automatisation des centres de données de Sun Microsystems<sup id="cite_ref-72" class="reference"><a href="#cite_note-72"><span class="cite-bracket">[</span>72<span class="cite-bracket">]</span></a></sup>.</li></ul>
<ul><li><a href="MusicBrainz" title="MusicBrainz">MusicBrainz</a>, encyclopédie musicale collaborative en ligne<sup id="cite_ref-73" class="reference"><a href="#cite_note-73"><span class="cite-bracket">[</span>73<span class="cite-bracket">]</span></a></sup>.</li></ul>
<ul><li><a href="Station_spatiale_internationale" title="Station spatiale internationale">La Station spatiale internationale</a> (ISS), pour collecter des données de télémétrie en orbite et les répliquer au sol<sup id="cite_ref-74" class="reference"><a href="#cite_note-74"><span class="cite-bracket">[</span>74<span class="cite-bracket">]</span></a></sup>.</li></ul>
<ul><li>MyYearbook, un réseau social<sup id="cite_ref-75" class="reference"><a href="#cite_note-75"><span class="cite-bracket">[</span>75<span class="cite-bracket">]</span></a></sup>.</li></ul>
<ul><li><a href="Instagram" title="Instagram">Instagram</a>, service de partage de photos sur mobile<sup id="cite_ref-76" class="reference"><a href="#cite_note-76"><span class="cite-bracket">[</span>76<span class="cite-bracket">]</span></a></sup>.</li></ul>
<ul><li><a href="Disqus" title="Disqus">Disqus</a>, un service en ligne de commentaires et discussions<sup id="cite_ref-77" class="reference"><a href="#cite_note-77"><span class="cite-bracket">[</span>77<span class="cite-bracket">]</span></a></sup>.</li></ul>
<ul><li><a href="TripAdvisor" class="mw-redirect" title="TripAdvisor">TripAdvisor</a>, plateforme de contenu généré par les utilisateurs sur les voyages<sup id="cite_ref-78" class="reference"><a href="#cite_note-78"><span class="cite-bracket">[</span>78<span class="cite-bracket">]</span></a></sup>.</li></ul>
<ul><li><a href="Yandex" title="Yandex">Yandex</a>, entreprise russe qui a migré son service Yandex.Mail d’Oracle vers PostgreSQL<sup id="cite_ref-79" class="reference"><a href="#cite_note-79"><span class="cite-bracket">[</span>79<span class="cite-bracket">]</span></a></sup>.</li></ul>
<ul><li><a href="https://en.wikipedia.org/wiki/Amazon_Redshift" class="extiw external" title="en:Amazon Redshift">Amazon Redshift</a>, partie d’AWS, un système de <a href="Traitement_analytique_en_ligne" title="Traitement analytique en ligne">traitement analytique en colonnes</a> (OLAP) basé sur des modifications de PostgreSQL par <a href="https://en.wikipedia.org/wiki/ParAccel" class="extiw external" title="en:ParAccel">ParAccel</a>.</li>
<li><a href="National_Oceanic_and_Atmospheric_Administration" title="National Oceanic and Atmospheric Administration">National Oceanic and Atmospheric Administration</a> (NOAA) et son <a href="National_Weather_Service" title="National Weather Service">National Weather Service</a> (NWS), utilisent PostgreSQL dans le système <a href="IFPS" title="IFPS">IFPS</a>, qui intègre des données des radars météorologiques <a href="NEXRAD" title="NEXRAD">NEXRAD</a>, des stations de surface et des systèmes hydrologiques pour produire des prévisions locales détaillées<sup id="cite_ref-Beginning_PHP_and_PostgreSQL_8:_From_Novice_to_Professional_69-1" class="reference"><a href="#cite_note-Beginning_PHP_and_PostgreSQL_8:_From_Novice_to_Professional-69"><span class="cite-bracket">[</span>69<span class="cite-bracket">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-PostgreSQL_9_Administration_Cookbook_-_Second_Edition_80-0" class="reference"><a href="#cite_note-PostgreSQL_9_Administration_Cookbook_-_Second_Edition-80"><span class="cite-bracket">[</span>80<span class="cite-bracket">]</span></a></sup>.</li>
<li><a href="Met_Office" title="Met Office">Met Office</a> (Royaume-Uni), qui a commencé à remplacer Oracle par PostgreSQL pour favoriser l’utilisation des technologies open source<sup id="cite_ref-PostgreSQL_9_Administration_Cookbook_-_Second_Edition_80-1" class="reference"><a href="#cite_note-PostgreSQL_9_Administration_Cookbook_-_Second_Edition-80"><span class="cite-bracket">[</span>80<span class="cite-bracket">]</span></a></sup>.</li>
<li><a href="https://en.wikipedia.org/wiki/Whitepages_(company)" class="extiw external" title="en:Whitepages (company)">WhitePages.com</a>, qui utilisait Oracle et MySQL, mais a migré vers PostgreSQL pour la gestion de ses répertoires internes en raison de sa capacité à charger et indexer rapidement de grands ensembles de données<sup id="cite_ref-Beginning_PHP_and_PostgreSQL_8:_From_Novice_to_Professional_69-2" class="reference"><a href="#cite_note-Beginning_PHP_and_PostgreSQL_8:_From_Novice_to_Professional-69"><span class="cite-bracket">[</span>69<span class="cite-bracket">]</span></a></sup>.</li></ul>
<ul><li><a href="https://en.wikipedia.org/wiki/FlightAware" class="extiw external" title="en:FlightAware">FlightAware</a>, un service de suivi des vols en temps réel<sup id="cite_ref-81" class="reference"><a href="#cite_note-81"><span class="cite-bracket">[</span>81<span class="cite-bracket">]</span></a></sup>.</li></ul>
<ul><li>Grofers (<a href="https://en.wikipedia.org/wiki/Blinkit" class="extiw external" title="en:Blinkit">Blinkit</a>), une plateforme de livraison de courses en ligne<sup id="cite_ref-82" class="reference"><a href="#cite_note-82"><span class="cite-bracket">[</span>82<span class="cite-bracket">]</span></a></sup>.</li></ul>
<ul><li><a href="The_Guardian" title="The Guardian">The Guardian</a>, qui a migré de <a href="MongoDB" title="MongoDB">MongoDB</a> vers PostgreSQL en 2018<sup id="cite_ref-83" class="reference"><a href="#cite_note-83"><span class="cite-bracket">[</span>83<span class="cite-bracket">]</span></a></sup>.</li></ul>
<ul><li><a href="https://en.wikipedia.org/wiki/YugabyteDB" class="extiw external" title="en:YugabyteDB">YugabyteDB</a>, qui implémente le moteur de requêtes PostgreSQL comme mode SQL par défaut.</li></ul>
<ul><li><a href="OpenAI" title="OpenAI">OpenAI</a>, qui utilise PostgreSQL comme base de données principale pour son API<sup id="cite_ref-84" class="reference"><a href="#cite_note-84"><span class="cite-bracket">[</span>84<span class="cite-bracket">]</span></a></sup>.</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Les_entreprises_françaises"><span id="Les_entreprises_fran.C3.A7aises"></span>Les entreprises françaises</h3></div>
<ul><li>La <a href="Soci%C3%A9t%C3%A9_nationale_des_chemins_de_fer_fran%C3%A7ais" title="Société nationale des chemins de fer français">Société Nationale des Chemins de fer Français</a> (SNCF) utilise PostgreSQL pour gérer ses données ferroviaires et optimiser ses opérations<sup id="cite_ref-85" class="reference"><a href="#cite_note-85"><span class="cite-bracket">[</span>85<span class="cite-bracket">]</span></a></sup>.</li>
<li>La <a href="Soci%C3%A9t%C3%A9_G%C3%A9n%C3%A9rale" class="mw-redirect" title="Société Générale">Société Générale</a>, banque française, a adopté PostgreSQL pour sa robustesse et sa capacité à fonctionner sur divers systèmes d'exploitation, améliorant ainsi la gestion de ses données financières.</li>
<li>La <a href="Mutuelle_d'Assurance_des_Instituteurs_de_France" class="mw-redirect" title="Mutuelle d'Assurance des Instituteurs de France">Mutuelle d'Assurance des Instituteurs de France</a> (MAIF) utilise PostgreSQL pour gérer efficacement ses données clients et ses opérations internes.</li>
<li>L'<a href="Institut_national_de_l'information_g%C3%A9ographique_et_foresti%C3%A8re" title="Institut national de l'information géographique et forestière">Institut National de l'Information Géographique et Forestière</a> (IGN) exploite PostgreSQL pour gérer ses données géospatiales, facilitant ainsi la cartographie et l'analyse géographique.</li>
<li>La compagnie aérienne <a href="Air_France" title="Air France">Air France</a> utilise PostgreSQL pour optimiser la gestion de ses données opérationnelles et améliorer ses services aux passagers.</li>
<li><a href="Carrefour_(enseigne)" title="Carrefour (enseigne)">Carrefour</a> utilise PostgreSQL pour gérer ses vastes bases de données de produits et de transactions, améliorant ainsi l'efficacité de ses opérations.</li>
<li><a href="%C3%89lectricit%C3%A9_de_France" title="Électricité de France">Électricité de France</a> (EDF) utilise PostgreSQL pour gérer ses données énergétiques.</li>
<li><a href="Enedis" title="Enedis">ENEDIS</a> exploite PostgreSQL pour superviser et optimiser la distribution électrique.</li>
<li>Le <a href="Minist%C3%A8re_de_l'%C3%89ducation_nationale_(France)" title="Ministère de l'Éducation nationale (France)">Ministère de l'Éducation Nationale</a> utilise PostgreSQL pour gérer diverses bases de données éducatives.</li>
<li><a href="M%C3%A9t%C3%A9o-France" title="Météo-France">Météo-France</a> utilise PostgreSQL pour traiter et stocker ses données météorologiques.</li>
<li>La <a href="Gendarmerie_nationale" class="mw-redirect" title="Gendarmerie nationale">Gendarmerie nationale</a> a intégré PostgreSQL dans ses systèmes d'information pour gérer ses bases de données<sup id="cite_ref-86" class="reference"><a href="#cite_note-86"><span class="cite-bracket">[</span>86<span class="cite-bracket">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-87" class="reference"><a href="#cite_note-87"><span class="cite-bracket">[</span>87<span class="cite-bracket">]</span></a></sup>.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Pilotes">Pilotes</h2></div>
<p>Pour chacun des langages usuels, ou avancés, PostgreSQL dispose d'une interface le plus souvent proposée sous la forme d'un pilote du <a href="Moteur_de_base_de_donn%C3%A9es" title="Moteur de base de données">moteur de base de données</a>. C'est ainsi le cas notamment pour <a href="PHP" title="PHP">PHP</a>, <a href="Ruby" title="Ruby">Ruby</a>, Java, Perl, Python, ou C et C++, mais aussi pour de très nombreux autres langages.
</p>
<ul><li><a href="Java_(langage)" title="Java (langage)">Java</a> : pilotes <a href="Java_Database_Connectivity" title="Java Database Connectivity">JDBC</a><sup id="cite_ref-88" class="reference"><a href="#cite_note-88"><span class="cite-bracket">[</span>88<span class="cite-bracket">]</span></a></sup> de type 2, 3 et 4.</li>
<li><a href="Perl_(langage)" title="Perl (langage)">Perl</a> : DBD::Pg<sup id="cite_ref-89" class="reference"><a href="#cite_note-89"><span class="cite-bracket">[</span>89<span class="cite-bracket">]</span></a></sup> (pilote Perl)</li>
<li><a href="Python_(langage)" title="Python (langage)">Python</a> : psycopg2.sql/PyGRes (pilotes Python), PoPy/Zope-DA (pilotes <a href="Zope" title="Zope">Zope</a>).</li>
<li><a href="R_(langage)" title="R (langage)">R</a> : RPostgreSQL<sup id="cite_ref-90" class="reference"><a href="#cite_note-90"><span class="cite-bracket">[</span>90<span class="cite-bracket">]</span></a></sup></li>
<li><a href="Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a> : les pilotes <a href="ActiveX_Data_Objects" title="ActiveX Data Objects">ADO</a>, <a href="Microsoft_.NET" title="Microsoft .NET">.NET</a>, <a href="Object_Linking_and_Embedding" title="Object Linking and Embedding">OLE</a> et <a href="ODBC" class="mw-redirect" title="ODBC">ODBC</a> existent<sup id="cite_ref-91" class="reference"><a href="#cite_note-91"><span class="cite-bracket">[</span>91<span class="cite-bracket">]</span></a></sup>.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Notes_et_références"><span id="Notes_et_r.C3.A9f.C3.A9rences"></span>Notes et références</h2></div>
<div class="references-small decimal" style="column-width:36em; column-count:2;"><ol class="references">
<li id="cite_note-wikidata-9bc97ceb394596d1f27bf6d458c8798a61ad8185-1"><span class="mw-cite-backlink"><a href="#cite_ref-wikidata-9bc97ceb394596d1f27bf6d458c8798a61ad8185_1-0">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://www.postgresql.org/about/news/postgresql-18-released-3142/"><cite style="font-style:normal;"><span class="lang-en" lang="en">PostgreSQL 18 Released!</span></cite></a> », <time class="nowrap" datetime="2025-09-25" data-sort-value="2025-09-25">25 septembre 2025</time></span></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a> </span><span class="reference-text">Documentation française PostgreSQL <a rel="nofollow" class="external autonumber" href="http://docs.postgresql.fr/8.1/protocol.html">[1]</a>.</span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2025"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.postgresql.org/docs/current/intro-whatis.html"><cite style="font-style:normal;" lang="en">1. What Is PostgreSQL?</cite></a> », sur <span class="italique">PostgreSQL Documentation</span>, <time class="nowrap" datetime="2025-02-13" data-sort-value="2025-02-13">13 février 2025</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-19" data-sort-value="2025-02-19">19 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2022"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.crunchydata.com/blog/parquet-and-postgres-in-the-data-lake"><cite style="font-style:normal;" lang="en">Parquet and Postgres in the Data Lake | Crunchy Data Blog</cite></a> », sur <span class="italique">Crunchy Data</span>, <time class="nowrap" datetime="2022-05-03" data-sort-value="2022-05-03">3 mai 2022</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-19" data-sort-value="2025-02-19">19 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><a href="#cite_ref-5">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Group2025"><span class="ouvrage" id="PostgreSQL_Global_Development_Group2025"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> PostgreSQL Global Development <span class="nom_auteur">Group</span>, « <a rel="nofollow" class="external text" href="https://www.postgresql.org/"><cite style="font-style:normal;" lang="en">PostgreSQL</cite></a> », sur <span class="italique">PostgreSQL</span>, <time class="nowrap" datetime="2025-02-19" data-sort-value="2025-02-19">19 février 2025</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-19" data-sort-value="2025-02-19">19 février 2025</time>)</small></span></span></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://wiki.postgresql.org/wiki/Replication,_Clustering,_and_Connection_Pooling"><cite style="font-style:normal;">Replication, Clustering, and Connection Pooling - PostgreSQL wiki</cite></a> », sur <span class="italique">wiki.postgresql.org</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-19" data-sort-value="2025-02-19">19 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><a href="#cite_ref-7">↑</a> </span><span class="reference-text"><span class="ouvrage" id="de_code_source_principal"><span class="ouvrage" id="Dépôt_de_code_source_principal">Dépôt de code source principal, « <a rel="nofollow" class="external text" href="http://git.postgresql.org/gitweb/?p=postgresql.git"><cite style="font-style:normal;"><span class="lang-en" lang="en"><i>PostgreSQL git repository</i></span></cite></a> », sur <span class="italique">git.postgresql.org</span>, <time class="nowrap" datetime="2012-02-28" data-sort-value="2012-02-28">28 février 2012</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2012-02-28" data-sort-value="2012-02-28">28 février 2012</time>)</small></span></span>.</span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><a href="#cite_ref-8">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : français">(fr)</abbr> <a rel="nofollow" class="external text" href="http://docs.postgresqlfr.org/9.0/features.html">Documentation PostgreSQL 9.0 - Conformité SQL</a> : « PostgreSQL supporte la plupart des fonctionnalités majeures de SQL:2008. Sur les 179 fonctionnalités requises pour une conformité « centrale » complète (full Core conformance), PostgreSQL se conforme à plus de 160. »</span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><a href="#cite_ref-9">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : français">(fr)</abbr> <a rel="nofollow" class="external autonumber" href="https://www.postgresql.fr/temoignages:meteo_france">[2]</a> : «La base la plus volumineuse pèse environ 30 Tera-octets»</span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><a href="#cite_ref-10">↑</a> </span><span class="reference-text"><span class="ouvrage" id="K._Ports;_Kevin_Grittner2012"><span class="ouvrage" id="Dan_R._K._Ports;_Kevin_Grittner2012"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Dan R. K. Ports; Kevin Grittner, <cite style="font-style:normal" lang="en">« Proceedings of the VLDB Endowmen »</cite>, dans <cite class="italique" lang="en">Proceedings of the VLDB Endowment</cite>, <time>2012</time> <small style="line-height:1em;">(<a rel="nofollow" class="external text" href="http://drkp.net/drkp/papers/ssi-vldb12.pdf">lire en ligne</a>)</small>, <abbr class="abbr" title="pages">p.</abbr> <span class="nowrap">1850–1861</span><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.btitle=Proceedings+of+the+VLDB+Endowment&rft.atitle=Proceedings+of+the+VLDB+Endowmen&rft.aulast=K.+Ports%3B+Kevin+Grittner&rft.aufirst=Dan+R.&rft.date=2012&rft.pages=1850%E2%80%931861&rft_id=http%3A%2F%2Fdrkp.net%2Fdrkp%2Fpapers%2Fssi-vldb12.pdf&rfr_id=info%3Asid%2Ffr.wikipedia.org%3APostgreSQL"></span></span></span></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><a href="#cite_ref-11">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.cs.cmu.edu/~pavlo/blog/2023/04/the-part-of-postgresql-we-hate-the-most.html"><cite style="font-style:normal;" lang="en">The Part of PostgreSQL We Hate the Most</cite></a> », sur <span class="italique">Andy Pavlo - Carnegie Mellon University</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-17" data-sort-value="2025-02-17">17 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><a href="#cite_ref-12">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://www.loxodata.com/post/replicationlogique/"><cite style="font-style:normal;">PostgreSQL et la réplication logique</cite></a> », sur <span class="italique">www.loxodata.com</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-18" data-sort-value="2025-02-18">18 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><a href="#cite_ref-13">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://wiki.postgresql.org/wiki/What's_new_in_PostgreSQL_9.1"><cite style="font-style:normal;">What's new in PostgreSQL 9.1 - PostgreSQL wiki</cite></a> », sur <span class="italique">wiki.postgresql.org</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-18" data-sort-value="2025-02-18">18 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><a href="#cite_ref-14">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://docs.postgresql.fr/9.6/replication-origins.html"><cite style="font-style:normal;">Chapitre 48. Tracer la progression de la réplication</cite></a> », sur <span class="italique">docs.postgresql.fr</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-18" data-sort-value="2025-02-18">18 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><a href="#cite_ref-15">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2010">« <a rel="nofollow" class="external text" href="https://web.archive.org/web/20101226124550/http://www.backcountrycorp.com/corporate/section/3/press/a511/Backcountry-finally-gives-something-back-to-the-open-source-community.html"><cite style="font-style:normal;">Backcountrycorp.com | Press Release/Article Details</cite></a> », sur <span class="italique">web.archive.org</span>, <time class="nowrap" datetime="2010-12-26" data-sort-value="2010-12-26">26 décembre 2010</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-18" data-sort-value="2025-02-18">18 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><a href="#cite_ref-16">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2025"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.postgresql.org/docs/current/spgist.html#:~:text=SP-GiST%20is%20an%20abbreviation,and%20radix%20trees%20(tries)."><cite style="font-style:normal;" lang="en">64.3. SP-GiST Indexes</cite></a> », sur <span class="italique">PostgreSQL Documentation</span>, <time class="nowrap" datetime="2025-02-13" data-sort-value="2025-02-13">13 février 2025</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-18" data-sort-value="2025-02-18">18 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><a href="#cite_ref-17">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2025"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.postgresql.org/docs/current/indexes-index-only-scans.html"><cite style="font-style:normal;" lang="en">11.9. Index-Only Scans and Covering Indexes</cite></a> », sur <span class="italique">PostgreSQL Documentation</span>, <time class="nowrap" datetime="2025-02-13" data-sort-value="2025-02-13">13 février 2025</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-18" data-sort-value="2025-02-18">18 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-18"><span class="mw-cite-backlink"><a href="#cite_ref-18">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2021"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.postgresql.org/docs/9.5/brin.html"><cite style="font-style:normal;" lang="en">BRIN Indexes</cite></a> », sur <span class="italique">PostgreSQL Documentation</span>, <time class="nowrap" datetime="2021-02-11" data-sort-value="2021-02-11">11 février 2021</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-18" data-sort-value="2025-02-18">18 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-19"><span class="mw-cite-backlink"><a href="#cite_ref-19">↑</a> </span><span class="reference-text"><span class="ouvrage" id="MikeRayMSFT2025"><span class="nom_auteur">MikeRayMSFT</span>, « <a rel="nofollow" class="external text" href="https://learn.microsoft.com/fr-fr/sql/t-sql/data-types/ntext-text-and-image-transact-sql?view=sql-server-ver16"><cite style="font-style:normal;">Types ntext, text et image (Transact-SQL) - SQL Server</cite></a> », sur <span class="italique">learn.microsoft.com</span>, <time class="nowrap" datetime="2025-01-15" data-sort-value="2025-01-15">15 janvier 2025</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-20" data-sort-value="2025-02-20">20 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-20"><span class="mw-cite-backlink"><a href="#cite_ref-20">↑</a> </span><span class="reference-text"><span class="ouvrage" id="MikeRayMSFT2025"><span class="nom_auteur">MikeRayMSFT</span>, « <a rel="nofollow" class="external text" href="https://learn.microsoft.com/fr-fr/sql/t-sql/data-types/char-and-varchar-transact-sql?view=sql-server-ver16"><cite style="font-style:normal;">char et varchar (Transact-SQL) - SQL Server</cite></a> », sur <span class="italique">learn.microsoft.com</span>, <time class="nowrap" datetime="2025-01-02" data-sort-value="2025-01-02">2 janvier 2025</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-20" data-sort-value="2025-02-20">20 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-21"><span class="mw-cite-backlink"><a href="#cite_ref-21">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://www.linuxjournal.com/content/postgresql-nosql-database"><cite style="font-style:normal;">PostgreSQL, the NoSQL Database | Linux Journal</cite></a> », sur <span class="italique">www.linuxjournal.com</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-20" data-sort-value="2025-02-20">20 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-22"><span class="mw-cite-backlink"><a href="#cite_ref-22">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2014">« <a rel="nofollow" class="external text" href="https://pgeoghegan.blogspot.com/2014/03/what-i-think-of-jsonb.html"><cite style="font-style:normal;">Peter Geoghegan's blog: What I think of jsonb</cite></a> », sur <span class="italique">Peter Geoghegan's blog</span>, <time class="nowrap" datetime="2014-03-23" data-sort-value="2014-03-23">23 mars 2014</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-20" data-sort-value="2025-02-20">20 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-23"><span class="mw-cite-backlink"><a href="#cite_ref-23">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://docs.postgresql.fr/13/tutorial-inheritance.html?utm_source=chatgpt.com"><cite style="font-style:normal;">3.6. Héritage</cite></a> », sur <span class="italique">docs.postgresql.fr</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-20" data-sort-value="2025-02-20">20 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-24"><span class="mw-cite-backlink"><a href="#cite_ref-24">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://docs.postgresql.fr/12/pgupgrade.html"><cite style="font-style:normal;">pg_upgrade</cite></a> », sur <span class="italique">docs.postgresql.fr</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-20" data-sort-value="2025-02-20">20 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-25"><span class="mw-cite-backlink"><a href="#cite_ref-25">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://wiki.postgresql.org/wiki/Foreign_data_wrappers"><cite style="font-style:normal;">Foreign data wrappers - PostgreSQL wiki</cite></a> », sur <span class="italique">wiki.postgresql.org</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-25" data-sort-value="2025-02-25">25 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-26"><span class="mw-cite-backlink"><a href="#cite_ref-26">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2025"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.postgresql.org/docs/16/libpq.html"><cite style="font-style:normal;" lang="en">Chapter 34. libpq — C Library</cite></a> », sur <span class="italique">PostgreSQL Documentation</span>, <time class="nowrap" datetime="2025-02-20" data-sort-value="2025-02-20">20 février 2025</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-25" data-sort-value="2025-02-25">25 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-27"><span class="mw-cite-backlink"><a href="#cite_ref-27">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2025"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.postgresql.org/docs/16/client-interfaces.html"><cite style="font-style:normal;" lang="en">Part IV. Client Interfaces</cite></a> », sur <span class="italique">PostgreSQL Documentation</span>, <time class="nowrap" datetime="2025-02-20" data-sort-value="2025-02-20">20 février 2025</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-25" data-sort-value="2025-02-25">25 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-28"><span class="mw-cite-backlink"><a href="#cite_ref-28">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2025"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.postgresql.org/docs/current/server-programming.html"><cite style="font-style:normal;" lang="en">Part V. Server Programming</cite></a> », sur <span class="italique">PostgreSQL Documentation</span>, <time class="nowrap" datetime="2025-02-20" data-sort-value="2025-02-20">20 février 2025</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-25" data-sort-value="2025-02-25">25 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-29"><span class="mw-cite-backlink"><a href="#cite_ref-29">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2025"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.postgresql.org/docs/current/sql-do.html"><cite style="font-style:normal;" lang="en">DO</cite></a> », sur <span class="italique">PostgreSQL Documentation</span>, <time class="nowrap" datetime="2025-02-20" data-sort-value="2025-02-20">20 février 2025</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-25" data-sort-value="2025-02-25">25 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-30"><span class="mw-cite-backlink"><a href="#cite_ref-30">↑</a> </span><span class="reference-text"><span class="ouvrage" id="GmbH"><span class="ouvrage" id="Data_Geekery_GmbH"><abbr class="abbr indicateur-langue" title="Langue : anglais américain">(en-US)</abbr> Data Geekery <span class="nom_auteur">GmbH</span>, « <a rel="nofollow" class="external text" href="https://www.jooq.org/doc/latest/manual/sql-building/plain-sql/"><cite style="font-style:normal;" lang="en-us">Plain SQL</cite></a> », sur <span class="italique"><a href="JOOQ" title="JOOQ">JOOQ</a></span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-25" data-sort-value="2025-02-25">25 février 2025</time>)</small></span></span></span>
</li>
<li id="cite_note-31"><span class="mw-cite-backlink"><a href="#cite_ref-31">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2025"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.postgresql.org/docs/current/external-pl.html"><cite style="font-style:normal;" lang="en">H.3. Procedural Languages</cite></a> », sur <span class="italique">PostgreSQL Documentation</span>, <time class="nowrap" datetime="2025-02-20" data-sort-value="2025-02-20">20 février 2025</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-25" data-sort-value="2025-02-25">25 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-32"><span class="mw-cite-backlink"><a href="#cite_ref-32">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2020"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://discourse.julialang.org/t/pl-julia-extension-minimal/34232/2"><cite style="font-style:normal;" lang="en">PL/Julia extension ( minimal )</cite></a> », sur <span class="italique">Julia Programming Language</span>, <time class="nowrap" datetime="2020-03-08" data-sort-value="2020-03-08">8 mars 2020</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-25" data-sort-value="2025-02-25">25 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-33"><span class="mw-cite-backlink"><a href="#cite_ref-33">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2019"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://webapp.io/blog/postgres-is-the-answer/"><cite style="font-style:normal;" lang="en">Postgres is a great pub/sub & job server</cite></a> », sur <span class="italique">Webapp.io Blog</span>, <time class="nowrap" datetime="2019-11-08" data-sort-value="2019-11-08">8 novembre 2019</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-26" data-sort-value="2025-02-26">26 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-34"><span class="mw-cite-backlink"><a href="#cite_ref-34">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2021"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.postgresql.org/docs/9.5/release-9-5.html"><cite style="font-style:normal;" lang="en">Release 9.5</cite></a> », sur <span class="italique">PostgreSQL Documentation</span>, <time class="nowrap" datetime="2021-02-11" data-sort-value="2021-02-11">11 février 2021</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-26" data-sort-value="2025-02-26">26 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-35"><span class="mw-cite-backlink"><a href="#cite_ref-35">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.enterprisedb.com/blog/what-skip-locked-postgresql-95-0"><cite style="font-style:normal;" lang="en">What is SKIP LOCKED for in PostgreSQL 9.5?</cite></a> », sur <span class="italique">EDB</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-26" data-sort-value="2025-02-26">26 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-36"><span class="mw-cite-backlink"><a href="#cite_ref-36">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.oreilly.com/"><cite style="font-style:normal;" lang="en">O'Reilly Media - Technology and Business Training</cite></a> », sur <span class="italique">www.oreilly.com</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-26" data-sort-value="2025-02-26">26 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-37"><span class="mw-cite-backlink"><a href="#cite_ref-37">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://blog.hagander.net/a-few-short-notes-about-postgresql-and-poodle-222/"><cite style="font-style:normal;">A few short notes about PostgreSQL and POODLE - Magnus Hagander's blog</cite></a> », sur <span class="italique">blog.hagander.net</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-26" data-sort-value="2025-02-26">26 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-38"><span class="mw-cite-backlink"><a href="#cite_ref-38">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://lwn.net/Articles/689387/"><cite style="font-style:normal;">PostgreSQL 9.6 Beta and PGCon 2016 [LWN.net]</cite></a> », sur <span class="italique">lwn.net</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-26" data-sort-value="2025-02-26">26 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-39"><span class="mw-cite-backlink"><a href="#cite_ref-39">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://wiki.postgresql.org/wiki/FAQ#How_does_PostgreSQL_use_CPU_resources.3F"><cite style="font-style:normal;">FAQ - PostgreSQL wiki</cite></a> », sur <span class="italique">wiki.postgresql.org</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-26" data-sort-value="2025-02-26">26 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-40"><span class="mw-cite-backlink"><a href="#cite_ref-40">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://postgresql.developpez.com/documentation/francais/10beta4/sql-security-label.html"><cite style="font-style:normal;">SECURITY LABEL</cite></a> », sur <span class="italique">postgresql.developpez.com</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-17" data-sort-value="2025-02-17">17 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-41"><span class="mw-cite-backlink"><a href="#cite_ref-41">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://docs.postgresql.fr/11/sql-security-label.html"><cite style="font-style:normal;">SECURITY LABEL</cite></a> », sur <span class="italique">docs.postgresql.fr</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-17" data-sort-value="2025-02-17">17 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-42"><span class="mw-cite-backlink"><a href="#cite_ref-42">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://wiki.postgresql.org/wiki/SEPostgreSQL_Documentation"><cite style="font-style:normal;">SEPostgreSQL Documentation - PostgreSQL wiki</cite></a> », sur <span class="italique">wiki.postgresql.org</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-17" data-sort-value="2025-02-17">17 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-43"><span class="mw-cite-backlink"><a href="#cite_ref-43">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://selinuxproject.org/page/NB_SQL_9.3"><cite style="font-style:normal;">NB SQL 9.3 - SELinux Wiki</cite></a> », sur <span class="italique">selinuxproject.org</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-17" data-sort-value="2025-02-17">17 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-44"><span class="mw-cite-backlink"><a href="#cite_ref-44">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2022"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.postgresql.org/docs/10/release-10.html#id-1.11.6.16.3"><cite style="font-style:normal;" lang="en">E.24. Release 10</cite></a> », sur <span class="italique">PostgreSQL Documentation</span>, <time class="nowrap" datetime="2022-11-10" data-sort-value="2022-11-10">10 novembre 2022</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-17" data-sort-value="2025-02-17">17 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-45"><span class="mw-cite-backlink"><a href="#cite_ref-45">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://www.postgresql.org/about/"><cite style="font-style:normal;">PostgreSQL: About</cite></a> », sur <span class="italique">www.postgresql.org</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-17" data-sort-value="2025-02-17">17 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-46"><span class="mw-cite-backlink"><a href="#cite_ref-46">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2025"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS"><cite style="font-style:normal;" lang="en">4.1. Lexical Structure</cite></a> », sur <span class="italique">PostgreSQL Documentation</span>, <time class="nowrap" datetime="2025-02-13" data-sort-value="2025-02-13">13 février 2025</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-17" data-sort-value="2025-02-17">17 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-47"><span class="mw-cite-backlink"><a href="#cite_ref-47">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://wiki.postgresql.org/wiki/Temporal_Extensions"><cite style="font-style:normal;">Temporal Extensions - PostgreSQL wiki</cite></a> », sur <span class="italique">wiki.postgresql.org</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-17" data-sort-value="2025-02-17">17 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-48"><span class="mw-cite-backlink"><a href="#cite_ref-48">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2024"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://blog.gitguardian.com/benchmarking-postgresql-16/?utm_source=chatgpt.com"><cite style="font-style:normal;" lang="en">Better Security and Performance For Free? Why PostgreSQL is Amazing</cite></a> », sur <span class="italique"><a href="GitGuardian" title="GitGuardian">GitGuardian</a> Blog - Take Control of Your Secrets Security</span>, <time class="nowrap" datetime="2024-07-24" data-sort-value="2024-07-24">24 juillet 2024</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-17" data-sort-value="2025-02-17">17 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-49"><span class="mw-cite-backlink"><a href="#cite_ref-49">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2024">« <a rel="nofollow" class="external text" href="https://www.bytebase.com/blog/postgres-vs-mysql/?utm_source=chatgpt.com"><cite style="font-style:normal;">Postgres vs. MySQL: a Complete Comparison in 2024</cite></a> », sur <span class="italique">Bytebase</span>, <time class="nowrap" datetime="2024-09-16" data-sort-value="2024-09-16">16 septembre 2024</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-17" data-sort-value="2025-02-17">17 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-50"><span class="mw-cite-backlink"><a href="#cite_ref-50">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Musgrave2023"><span class="ouvrage" id="Zach_Musgrave2023"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Zach <span class="nom_auteur">Musgrave</span>, « <a rel="nofollow" class="external text" href="https://www.dolthub.com/blog/2023-12-15-benchmarking-postgres-mysql-dolt/?utm_source=chatgpt.com"><cite style="font-style:normal;" lang="en">Comparing benchmarks for Postgres, MySQL, and their Dolt equivalents | DoltHub Blog</cite></a> », sur <span class="italique">dolthub.com</span>, <time class="nowrap" datetime="2023-12-15" data-sort-value="2023-12-15">15 décembre 2023</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-17" data-sort-value="2025-02-17">17 février 2025</time>)</small></span></span></span>
</li>
<li id="cite_note-51"><span class="mw-cite-backlink"><a href="#cite_ref-51">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.citusdata.com/blog/2023/06/21/distributed-postgres-benchmarks-using-hammerdb-by-gigaom/?utm_source=chatgpt.com"><cite style="font-style:normal;" lang="en">Distributed PostgreSQL benchmarks using HammerDB, by GigaOM</cite></a> », sur <span class="italique">Citus Data</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-17" data-sort-value="2025-02-17">17 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-52"><span class="mw-cite-backlink"><a href="#cite_ref-52">↑</a> </span><span class="reference-text"><span class="ouvrage" id="ZhuChenDingChen2023"><span class="ouvrage" id="Rong_ZhuWei_ChenBolin_DingXingguang_Chen2023">Rong <span class="nom_auteur">Zhu</span>, Wei <span class="nom_auteur">Chen</span>, Bolin <span class="nom_auteur">Ding</span> et Xingguang <span class="nom_auteur">Chen</span>, <cite class="italique">Lero: A Learning-to-Rank Query Optimizer</cite>, <time class="nowrap" datetime="2023-02-20" data-sort-value="2023-02-20">20 février 2023</time> <small style="line-height:1em;">(<a href="Digital_Object_Identifier" title="Digital Object Identifier">DOI</a> <span class=" noarchive nowrap"><a rel="nofollow" class="external text" href="https://dx.doi.org/10.48550/arXiv.2302.06873">10.48550/arXiv.2302.06873</a></span>, <a rel="nofollow" class="external text" href="https://arxiv.org/abs/2302.06873?utm_source=chatgpt.com">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Lero%3A+A+Learning-to-Rank+Query+Optimizer&rft.aulast=Zhu&rft.aufirst=Rong&rft.au=Chen%2C+Wei&rft.au=Ding%2C+Bolin&rft.au=Chen%2C+Xingguang&rft.date=2023-02-20&rft_id=info%3Adoi%2F10.48550%2FarXiv.2302.06873&rfr_id=info%3Asid%2Ffr.wikipedia.org%3APostgreSQL"></span></span></span></span>
</li>
<li id="cite_note-53"><span class="mw-cite-backlink"><a href="#cite_ref-53">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://lists.debian.org/debian-devel/2012/07/msg00536.html"><cite style="font-style:normal;">AArch64 planning BoF at DebConf</cite></a> », sur <span class="italique">lists.debian.org</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-26" data-sort-value="2025-02-26">26 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-54"><span class="mw-cite-backlink"><a href="#cite_ref-54">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2025"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.postgresql.org/docs/current/supported-platforms.html"><cite style="font-style:normal;" lang="en">17.6. Supported Platforms</cite></a> », sur <span class="italique">PostgreSQL Documentation</span>, <time class="nowrap" datetime="2025-02-20" data-sort-value="2025-02-20">20 février 2025</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-26" data-sort-value="2025-02-26">26 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-55"><span class="mw-cite-backlink"><a href="#cite_ref-55">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external free" href="https://pygments.org/docs/lexers/#pygments.lexers.sql.PostgresConsoleLexer">https://pygments.org/docs/lexers/#pygments.lexers.sql.PostgresConsoleLexer</a></span>
</li>
<li id="cite_note-56"><span class="mw-cite-backlink"><a href="#cite_ref-56">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <span class="ouvrage" id="Lelarge2012"><span class="ouvrage" id="Guillaume_Lelarge2012">Guillaume Lelarge, <cite class="italique">pgAdmin III v1.14.2 released</cite>, pgsql-announce, <time class="nowrap" datetime="2012-02-27" data-sort-value="2012-02-27">27 février 2012</time> <small style="line-height:1em;">(<a rel="nofollow" class="external text" href="http://archives.postgresql.org/pgsql-announce/2012-02/msg00013.php">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=pgAdmin+III+v1.14.2+released&rft.pub=pgsql-announce&rft.aulast=Lelarge&rft.aufirst=Guillaume&rft.date=2012-02-27&rfr_id=info%3Asid%2Ffr.wikipedia.org%3APostgreSQL"></span></span></span>..</span>
</li>
<li id="cite_note-57"><span class="mw-cite-backlink"><a href="#cite_ref-57">↑</a> </span><span class="reference-text"><span class="ouvrage" id="pgAdmin2009"><span class="ouvrage" id="site_pgAdmin2009">site pgAdmin, « <a rel="nofollow" class="external text" href="http://www.pgadmin.org/licence.php"><cite style="font-style:normal;"><span class="lang-en" lang="en"><i>pgAdmin: Licence</i></span></cite></a> », sur <span class="italique">pgadmin.org</span>, <time class="nowrap" datetime="2009-03-26" data-sort-value="2009-03-26">26 mars 2009</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2012-02-28" data-sort-value="2012-02-28">28 février 2012</time>)</small></span></span>.</span>
</li>
<li id="cite_note-58"><span class="mw-cite-backlink"><a href="#cite_ref-58">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://www.pgadmin.org/docs/pgadmin4/8.13/release_notes_1_0.html"><cite style="font-style:normal;">Version 1.0 — pgAdmin 4 8.13 documentation</cite></a> », sur <span class="italique">www.pgadmin.org</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-16" data-sort-value="2025-02-16">16 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-59"><span class="mw-cite-backlink"><a href="#cite_ref-59">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2013">« <a rel="nofollow" class="external text" href="https://web.archive.org/web/20131007084849/http://www.postgresqlstudio.org/about/"><cite style="font-style:normal;">What is PostgreSQL Studio? | PostgreSQL Studio</cite></a> », sur <span class="italique">web.archive.org</span>, <time class="nowrap" datetime="2013-10-07" data-sort-value="2013-10-07">7 octobre 2013</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-60"><span class="mw-cite-backlink"><a href="#cite_ref-60">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://www.teampostgresql.com/"><cite style="font-style:normal;">TeamPostgreSQL - PostgreSQL Web Admin GUI Tools</cite></a> », sur <span class="italique">www.teampostgresql.com</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-61"><span class="mw-cite-backlink"><a href="#cite_ref-61">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2017">« <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170401220832/http://www1.bigsql.org/pgdevops/"><cite style="font-style:normal;">Wayback Machine</cite></a> », sur <span class="italique">web.archive.org</span>, <time class="nowrap" datetime="2017-04-01" data-sort-value="2017-04-01"><abbr class="abbr" title="premier">1<sup>er</sup></abbr> avril 2017</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-62"><span class="mw-cite-backlink"><a href="#cite_ref-62">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2025"><cite class="italique">pgbackrest/pgbackrest</cite>, pgBackRest, <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time> <small style="line-height:1em;">(<a rel="nofollow" class="external text" href="https://github.com/pgbackrest/pgbackrest">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=pgbackrest%2Fpgbackrest&rft.pub=pgBackRest&rft.date=2025-02-28&rfr_id=info%3Asid%2Ffr.wikipedia.org%3APostgreSQL"></span></span></span>
</li>
<li id="cite_note-63"><span class="mw-cite-backlink"><a href="#cite_ref-63">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2025"><cite class="italique">pgaudit/pgaudit</cite>, pgaudit, <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time> <small style="line-height:1em;">(<a rel="nofollow" class="external text" href="https://github.com/pgaudit/pgaudit">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=pgaudit%2Fpgaudit&rft.pub=pgaudit&rft.date=2025-02-28&rfr_id=info%3Asid%2Ffr.wikipedia.org%3APostgreSQL"></span></span></span>
</li>
<li id="cite_note-64"><span class="mw-cite-backlink"><a href="#cite_ref-64">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2025"><cite class="italique">wal-e/wal-e</cite>, wal-e, <time class="nowrap" datetime="2025-02-26" data-sort-value="2025-02-26">26 février 2025</time> <small style="line-height:1em;">(<a rel="nofollow" class="external text" href="https://github.com/wal-e/wal-e">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=wal-e%2Fwal-e&rft.pub=wal-e&rft.date=2025-02-26&rfr_id=info%3Asid%2Ffr.wikipedia.org%3APostgreSQL"></span></span></span>
</li>
<li id="cite_note-65"><span class="mw-cite-backlink"><a href="#cite_ref-65">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://wiki.postgresql.org/wiki/Design_Tools"><cite style="font-style:normal;" lang="en">Design Tools</cite></a> », sur <span class="italique">postgresql.org</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2023-11-15" data-sort-value="2023-11-15">15 novembre 2023</time>)</small></span>.</span>
</li>
<li id="cite_note-66"><span class="mw-cite-backlink"><a href="#cite_ref-66">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2011">« <a rel="nofollow" class="external text" href="https://www.geni.com/blog/last-weekends-outage-68211.html"><cite style="font-style:normal;">Last Weekend’s Outage</cite></a> », sur <span class="italique">The Geni Blog</span>, <time class="nowrap" datetime="2011-08-01" data-sort-value="2011-08-01"><abbr class="abbr" title="premier">1<sup>er</sup></abbr> août 2011</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-67"><span class="mw-cite-backlink"><a href="#cite_ref-67">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://wiki.openstreetmap.org/wiki/Database"><cite style="font-style:normal;">Database — OpenStreetMap Wiki</cite></a> », sur <span class="italique">wiki.openstreetmap.org</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-68"><span class="mw-cite-backlink"><a href="#cite_ref-68">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.computerworld.com/au/"><cite style="font-style:normal;" lang="en-au">Australia</cite></a> », sur <span class="italique">Computerworld</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-Beginning_PHP_and_PostgreSQL_8:_From_Novice_to_Professional-69"><span class="reference-text"><span class="ouvrage" id="GilmoreTreat2006"><span class="ouvrage" id="W._Jason_GilmoreRobert_H._Treat2006"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> W. Jason <span class="nom_auteur">Gilmore</span> et Robert H. <span class="nom_auteur">Treat</span>, <cite class="italique" lang="en">Beginning PHP and PostgreSQL 8: From Novice to Professional</cite>, Apress, <time class="nowrap" datetime="2006-11-21" data-sort-value="2006-11-21">21 novembre 2006</time> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <span class="nowrap">978-1-4302-0136-6</span>, <a rel="nofollow" class="external text" href="https://books.google.fr/books?id=BiRC4JtQzFIC&pg=PA577&redir_esc=y#v=onepage&q&f=false">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Beginning+PHP+and+PostgreSQL+8%3A+From+Novice+to+Professional&rft.pub=Apress&rft.aulast=Gilmore&rft.aufirst=W.+Jason&rft.au=Treat%2C+Robert+H.&rft.date=2006-11-21&rft.isbn=978-1-4302-0136-6&rfr_id=info%3Asid%2Ffr.wikipedia.org%3APostgreSQL"></span></span></span></span>
</li>
<li id="cite_note-70"><span class="mw-cite-backlink"><a href="#cite_ref-70">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2006"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.postgresql.org/about/news/sony-online-entertainment-selects-enterprisedb-advanced-server-81-replaces-oracle-502/"><cite style="font-style:normal;" lang="en">Sony Online Entertainment Selects EnterpriseDB Advanced Server 8.1; Replaces Oracle</cite></a> », sur <span class="italique">PostgreSQL News</span>, <time class="nowrap" datetime="2006-03-20" data-sort-value="2006-03-20">20 mars 2006</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-71"><span class="mw-cite-backlink"><a href="#cite_ref-71">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://github.com/reddit-archive/reddit/wiki/Architecture-Overview#reddit-the-software"><cite style="font-style:normal;" lang="en">Architecture Overview</cite></a> », sur <span class="italique">GitHub</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-72"><span class="mw-cite-backlink"><a href="#cite_ref-72">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2009">« <a rel="nofollow" class="external text" href="https://web.archive.org/web/20090307032257/http://blogs.sun.com/marchamilton/entry/how_much_are_you_paying"><cite style="font-style:normal;">How Much Are You Paying For Your Database? : Marc Hamilton's Weblog</cite></a> », sur <span class="italique">web.archive.org</span>, <time class="nowrap" datetime="2009-03-07" data-sort-value="2009-03-07">7 mars 2009</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-73"><span class="mw-cite-backlink"><a href="#cite_ref-73">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://musicbrainz.org/doc/MusicBrainz_Database"><cite style="font-style:normal;">MusicBrainz Database - MusicBrainz</cite></a> », sur <span class="italique">musicbrainz.org</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-74"><span class="mw-cite-backlink"><a href="#cite_ref-74">↑</a> </span><span class="reference-text"><span class="ouvrage" id="P._(JSC-OD211)2010"><span class="ouvrage" id="Duncavage,_Daniel_P._(JSC-OD211)2010"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Duncavage, Daniel <span class="nom_auteur">P. (JSC-OD211)</span>, « <a rel="nofollow" class="external text" href="https://www.postgresql.org/message-id/E0A4DA8CB358A94E860A1C604DCE0482B297999DD7@NDJSSCC01.ndc.nasa.gov"><cite style="font-style:normal;" lang="en">NASA needs Postgres - Nagios help</cite></a> », sur <span class="italique">PostgreSQL Mailing List Archives</span>, <time class="nowrap" datetime="2010-07-13" data-sort-value="2010-07-13">13 juillet 2010</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time>)</small></span></span></span>
</li>
<li id="cite_note-75"><span class="mw-cite-backlink"><a href="#cite_ref-75">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2011">« <a rel="nofollow" class="external text" href="https://web.archive.org/web/20110727183016/https://www.postgresqlconference.org/2010/east/talks/postgresql_at_myyearbook.com"><cite style="font-style:normal;">PostgreSQL at myYearbook.com | The PostgreSQL Conference</cite></a> », sur <span class="italique">web.archive.org</span>, <time class="nowrap" datetime="2011-07-27" data-sort-value="2011-07-27">27 juillet 2011</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-76"><span class="mw-cite-backlink"><a href="#cite_ref-76">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Engineering2016"><span class="ouvrage" id="Instagram_Engineering2016"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Instagram <span class="nom_auteur">Engineering</span>, « <a rel="nofollow" class="external text" href="https://instagram-engineering.com/keeping-instagram-up-with-over-a-million-new-users-in-twelve-hours-b75298b782c5"><cite style="font-style:normal;" lang="en">Keeping Instagram up with over a million new users in twelve hours</cite></a> », sur <span class="italique">Medium</span>, <time class="nowrap" datetime="2016-05-02" data-sort-value="2016-05-02">2 mai 2016</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time>)</small></span></span></span>
</li>
<li id="cite_note-77"><span class="mw-cite-backlink"><a href="#cite_ref-77">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://speakerdeck.com/mikeclarke/pgcon-2013-keynote-postgres-at-disqus"><cite style="font-style:normal;" lang="en">PGCon 2013 Keynote - Postgres at Disqus</cite></a> », sur <span class="italique">Speaker Deck</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-78"><span class="mw-cite-backlink"><a href="#cite_ref-78">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2015">« <a rel="nofollow" class="external text" href="https://web.archive.org/web/20150723181100/http://www.pgconf.us/2015/event/95/"><cite style="font-style:normal;">PostgreSQL Conference United States | PGConf US 2015 | New York | At The Heart Of A Giant: Postgres At TripAdvisor</cite></a> », sur <span class="italique">web.archive.org</span>, <time class="nowrap" datetime="2015-07-23" data-sort-value="2015-07-23">23 juillet 2015</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-79"><span class="mw-cite-backlink"><a href="#cite_ref-79">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <span class="noarchive">« <a rel="nofollow" class="external text" href="https://news.ycombinator.com/item?id=12489055"><cite style="font-style:normal;" lang="en">Yandex.Mail's successful migration from Oracle to Postgres [pdf] | Hacker News</cite></a> » <small class=" cachelinks">[<a rel="nofollow" class="external text" href="http://web.archive.org/web/20241127040146/https://news.ycombinator.com/item?id=12489055">archive du <time class="nowrap" datetime="2024-11-27" data-sort-value="2024-11-27">27 novembre 2024</time></a>]</small></span>, sur <span class="italique">news.ycombinator.com</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-PostgreSQL_9_Administration_Cookbook_-_Second_Edition-80"><span class="reference-text"><span class="ouvrage" id="RiggsCiolliKrosingBartolini2015"><span class="ouvrage" id="Simon_RiggsGianni_CiolliHannu_KrosingGabriele_Bartolini2015"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Simon <span class="nom_auteur">Riggs</span>, Gianni <span class="nom_auteur">Ciolli</span>, Hannu <span class="nom_auteur">Krosing</span> et Gabriele <span class="nom_auteur">Bartolini</span>, <cite class="italique" lang="en">PostgreSQL 9 Administration Cookbook - Second Edition</cite>, Packt Publishing Ltd, <time class="nowrap" datetime="2015-04-30" data-sort-value="2015-04-30">30 avril 2015</time> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <span class="nowrap">978-1-84951-907-6</span>, <a rel="nofollow" class="external text" href="https://books.google.fr/books?id=rYrwCAAAQBAJ&pg=PA3&redir_esc=y#v=onepage&q&f=false">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=PostgreSQL+9+Administration+Cookbook+-+Second+Edition&rft.pub=Packt+Publishing+Ltd&rft.aulast=Riggs&rft.aufirst=Simon&rft.au=Ciolli%2C+Gianni&rft.au=Krosing%2C+Hannu&rft.au=Bartolini%2C+Gabriele&rft.date=2015-04-30&rft.isbn=978-1-84951-907-6&rfr_id=info%3Asid%2Ffr.wikipedia.org%3APostgreSQL"></span></span></span></span>
</li>
<li id="cite_note-81"><span class="mw-cite-backlink"><a href="#cite_ref-81">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://www.flightaware.com/about/code/"><cite style="font-style:normal;">Open Source Software</cite></a> », sur <span class="italique">FlightAware</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-82"><span class="mw-cite-backlink"><a href="#cite_ref-82">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Blog2018"><span class="ouvrage" id="Blinkit_Tech_Blog2018"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Blinkit Tech <span class="nom_auteur">Blog</span>, « <a rel="nofollow" class="external text" href="https://lambda.blinkit.com/ansible-at-grofers-part-2-managing-postgresql-c4069ce5855b?gi=9f3f78a5a9d0"><cite style="font-style:normal;" lang="en">Ansible at Grofers (Part 2) — Managing PostgreSQL</cite></a> », sur <span class="italique">Medium</span>, <time class="nowrap" datetime="2018-09-19" data-sort-value="2018-09-19">19 septembre 2018</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time>)</small></span></span></span>
</li>
<li id="cite_note-83"><span class="mw-cite-backlink"><a href="#cite_ref-83">↑</a> </span><span class="reference-text"><span class="ouvrage" id="McMahonChioreanColemanAskoolum2018"><span class="ouvrage" id="Philip_McMahonMaria-Livia_ChioreanSusie_ColemanAkash_Askoolum2018"><abbr class="abbr indicateur-langue" title="Langue : anglais britannique">(en-GB)</abbr> Philip <span class="nom_auteur">McMahon</span>, Maria-Livia <span class="nom_auteur">Chiorean</span>, Susie <span class="nom_auteur">Coleman</span> et Akash <span class="nom_auteur">Askoolum</span>, « <cite style="font-style:normal" lang="en-gb">Bye bye Mongo, Hello Postgres</cite> », <i><span class="lang-en-gb" lang="en-gb">The Guardian</span></i>, <time class="nowrap" datetime="2018-11-30" data-sort-value="2018-11-30">30 novembre 2018</time> <small style="line-height:1em;">(<a href="International_Standard_Serial_Number" title="International Standard Serial Number">ISSN</a> <span class=" noarchive"><a rel="nofollow" class="external text" href="https://portal.issn.org/resource/issn/0261-3077">0261-3077</a></span>, <a rel="nofollow" class="external text" href="https://www.theguardian.com/info/2018/nov/30/bye-bye-mongo-hello-postgres">lire en ligne</a>, consulté le <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Bye+bye+Mongo%2C+Hello+Postgres&rft.jtitle=The+Guardian&rft.aulast=McMahon&rft.aufirst=Philip&rft.au=Chiorean%2C+Maria-Livia&rft.au=Coleman%2C+Susie&rft.au=Askoolum%2C+Akash&rft.date=2018-11-30&rft.issn=0261-3077&rfr_id=info%3Asid%2Ffr.wikipedia.org%3APostgreSQL"></span></span></span></span>
</li>
<li id="cite_note-84"><span class="mw-cite-backlink"><a href="#cite_ref-84">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2023"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://status.openai.com/incidents/n254wyd7nml7"><cite style="font-style:normal;" lang="en">Elevated Errors on API and ChatGPT</cite></a> », sur <span class="italique">OpenAI Status</span>, <time class="nowrap" datetime="2023-11-21" data-sort-value="2023-11-21">21 novembre 2023</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-85"><span class="mw-cite-backlink"><a href="#cite_ref-85">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://numerique.sncf.com/ressources/open-source/"><cite style="font-style:normal;">Open source</cite></a> », sur <span class="italique">SNCF NUMÉRIQUE</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-86"><span class="mw-cite-backlink"><a href="#cite_ref-86">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://www.postgresql.fr/entreprises/english"><cite style="font-style:normal;">entreprises:english [Communauté francophone de PostgreSQL]</cite></a> », sur <span class="italique">www.postgresql.fr</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-87"><span class="mw-cite-backlink"><a href="#cite_ref-87">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://www.lemagit.fr/actualites/252509351/PostgreSQL-ne-decoit-pas-les-entreprises-francaises"><cite style="font-style:normal;">Ces entreprises françaises qui ne jurent que par PostgreSQL (ou presque)</cite></a> », sur <span class="italique">LeMagIT</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-02-28" data-sort-value="2025-02-28">28 février 2025</time>)</small></span></span>
</li>
<li id="cite_note-88"><span class="mw-cite-backlink"><a href="#cite_ref-88">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="https://jdbc.postgresql.org/download.html">Pilote JDBC pour postgres</a></span>
</li>
<li id="cite_note-89"><span class="mw-cite-backlink"><a href="#cite_ref-89">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://metacpan.org/pod/DBD::Pg"><cite style="font-style:normal;">DBD::Pg - PostgreSQL database driver for the DBI module - metacpan.org</cite></a> », sur <span class="italique">metacpan.org</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2018-12-31" data-sort-value="2018-12-31">31 décembre 2018</time>)</small></span></span>
</li>
<li id="cite_note-90"><span class="mw-cite-backlink"><a href="#cite_ref-90">↑</a> </span><span class="reference-text"><span class="ouvrage" id="ConwayEddelbuettelNishiyamaPrayaga_(during_2008)2017"><span class="ouvrage" id="Joe_ConwayDirk_EddelbuettelTomoaki_NishiyamaSameer_Kumar_Prayaga_(during_2008)2017">Joe <span class="nom_auteur">Conway</span>, Dirk <span class="nom_auteur">Eddelbuettel</span>, Tomoaki <span class="nom_auteur">Nishiyama</span> et Sameer Kumar <span class="nom_auteur">Prayaga (during 2008)</span>, <cite class="italique">RPostgreSQL: R Interface to the 'PostgreSQL' Database System</cite>, <time class="nowrap" datetime="2017-06-24" data-sort-value="2017-06-24">24 juin 2017</time> <small style="line-height:1em;">(<a rel="nofollow" class="external text" href="https://cran.r-project.org/package=RPostgreSQL">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=RPostgreSQL%3A+R+Interface+to+the+%27PostgreSQL%27+Database+System&rft.aulast=Conway&rft.aufirst=Joe&rft.au=Eddelbuettel%2C+Dirk&rft.au=Nishiyama%2C+Tomoaki&rft.au=Prayaga+%28during+2008%29%2C+Sameer+Kumar&rft.date=2017-06-24&rfr_id=info%3Asid%2Ffr.wikipedia.org%3APostgreSQL"></span></span></span></span>
</li>
<li id="cite_note-91"><span class="mw-cite-backlink"><a href="#cite_ref-91">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external autonumber" href="https://msdn.microsoft.com/en-us/library/dd363565.aspx">[3]</a></span>
</li>
</ol>
</div>
<div class="mw-heading mw-heading2"><h2 id="Voir_aussi">Voir aussi</h2></div>
<style data-mw-deduplicate="TemplateStyles:r194021218">
/* start https://fr.wikipedia.org/ */
.mw-parser-output .autres-projets>.titre{text-align:center;margin:0.2em 0}.mw-parser-output .autres-projets>ul{margin:0;padding:0}.mw-parser-output .autres-projets>ul>li{list-style:none;margin:0.2em 0;text-indent:0;padding-left:24px;min-height:20px;text-align:left;display:block}.mw-parser-output .autres-projets>ul>li>a{font-style:italic}@media(max-width:720px){.mw-parser-output .autres-projets{float:none}}
/* end https://fr.wikipedia.org/ */
</style>
<div class="mw-heading mw-heading3"><h3 id="Articles_connexes">Articles connexes</h3></div>
<ul><li><a href="Structured_Query_Language" title="Structured Query Language">SQL</a>, le langage de requêtes.</li>
<li><a href="Ingres_(base_de_donn%C3%A9es)" title="Ingres (base de données)">Ingres</a>, un SGBD du même développeur, plus ancien, libéré en 2004.</li>
<li><a href="MySQL" title="MySQL">MySQL</a>, un SGBD racheté par <a href="Oracle_(entreprise)" title="Oracle (entreprise)">Oracle</a>.</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Liens_externes">Liens externes</h3></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.postgresql.fr/">Site francophone</a></li>
<li><a rel="nofollow" class="external text" href="http://docs.postgresql.fr/">Documentation</a></li></ul>
<div class="navbox-container" style="clear:both;">
</div>
<ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail des bases de données</span> </span></li> <li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail des logiciels libres</span> </span></li> </ul></div><!--htdig_noindex--><div><div class="zim-footer">
Cet article est issu de <a class="external text" title="Dernière modification le 2025-10-14" href="https://fr.wikipedia.org/wiki/?title=PostgreSQL&oldid=229749630">Wikipédia</a>. Sauf mention contraire, le texte est disponible sous <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">Creative Commons Attribution-Share Alike 4.0</a>. Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>